天天看點

Ribbon負載均衡 饑餓加載

需要兩份或多份相同的性質的服務的子產品,位址與端口不同,服務子產品名稱相同,通路者通過名稱進行通路

讓通路者進行負載均衡的選擇

Ribbon負載均衡 饑餓加載

在Eureka中發送這個路徑我使用的是名字,而不是ip,這裡面的負載均衡就是由我們的Ribbon實作的,

如過在浏覽器中搜尋這個路徑肯定是查不到的,是以說這個Ribbon實作了Eureka中的負載均衡

Ribbon負載均衡 饑餓加載

@LoadBalanced注解就是攔截RestTemplate的請求,交給Ribbon來處理

Ribbon根據請求的服務名去拉取Ereuka注冊中心裡的服務清單

然後去做負載均衡處理,選擇好服務清單中某一個ip後,會把服務名稱改為選擇好的ip,重新發送請求給提供者

通過源碼 類LoadBalancerInterceptor 中 的 intercept(final HttpRequest request, final byte[] body, final ClientHttpRequestExecution execution) 方法可以看出

Ribbon的負載均衡政策由IRule決定的,可以通過Irule接口自定義它的政策,預設輪詢政策

有全局微服務配置,和局部服務的Ribbon負載均衡 方式有xml和注解

Ribbon有懶加載和饑餓加載

預設懶加載:第一次加載拉去服務,然後緩存,往後就會很快

第一次加載

Ribbon負載均衡 饑餓加載

第二次加載

Ribbon負載均衡 饑餓加載

饑餓加載:在配置中對某個服務開啟饑餓加載

ribbon:

eager-load:

enabled:true #開啟饑餓加載

clients:userservice #指定對userservice這個服務進行饑餓加載

Ribbon負載均衡 饑餓加載

啟動後測試

Ribbon負載均衡 饑餓加載

Eureka的負載均衡就是由Ribbon控制的

繼續閱讀