客戶端負載均衡,當服務節點出現問題時進行調節或是在正常情況下進行
服務調度。所謂的負載均衡,就是當服務提供的數量和調用方對服務進行
取舍的調節問題,在spring cloud中是通過Ribbon來解決的。還有另外一
種途徑是通過服務端的負載均衡Nginx來解決。Ribbon是客戶端的負載均
衡,通過Eureka來獲取所有的服務的數量,客戶端來調用服務時,Ribbon
通過一系列的算法來進行調節,選擇哪個服務來進行調用。默認無需對
Ribbon進行配置,它會采用默認的算法進行負載均衡。可以對負載均衡的
算法進行挑選,在調用方配置文件中對Ribbon負載均衡算法進行替換,默
認是雨露均沾式算法,可供挑選的算法總共有11種,比如RandomRule隨機
數式算法,還有的算法可以對節點的響應時間進行計算,擇優錄用。
Ribbon的依賴就在sping-cloud-starter-eureka組件中,無需另外引用。
Zuul網關:
①首先引依賴,Cloud Routing-->Zuul勾選后就引入依賴了。
②在yml配置文件中進行配置,zuul:routes:dm-user-consumer:/user/**
這段配置的意思是對所有訪問/user的請求進行攔截,zuul實質就相當於
一個過濾器。
③在啟動類上添加@EnableZuulProxy注解。
通過網關可以隱藏真正的訪問地址,在訪問地址中新增/user將通過網關
進行訪問。一共有四大類過濾器,首先經過PRE過濾器,再經過ROUTE過濾
器,ROUTE過濾器會去訪問真正的consumer組件,接着訪問POST過濾器,
最后響應回前端,如果在這個過程中出現異常,就會經由ERROR過濾器進
行處理。自定義一個類實現ZuulFilter接口,添加@Conponent注解注冊到
容器。在實現的run方法中進行登錄的控制或其他業務邏輯。