Ribbon
負載均衡有哪些方式
1)伺服器端負載均衡 Nginx
2)用戶端側負載均衡 Ribbon
Ribbon是什麼
Ribbon是Netflix釋出的雲中間層服務開源項目,其主要功能是提供用戶端側負載均衡算法。Ribbon用戶端元件提供一系列完善的配置項如連接配接逾時,重試等。簡單的說,Ribbon是一個用戶端負載均衡器,我們可以在配置檔案中列出Load Balancer後面所有的機器,Ribbon會自動的幫助你基于某種規則(如簡單輪詢,随機連接配接等)去連接配接這些機器,我們也很容易使用Ribbon實作自定義的負載均衡算法。
下圖展示了Eureka使用Ribbon時候的大緻架構:
Ribbon工作時分為兩步:第一步先選擇 Eureka Server, 它優先選擇在同一個Zone且負載較少的Server;第二步再根據使用者指定的政策,在從Server取到的服務注冊清單中選擇一個位址。其中Ribbon提供了多種政策,例如輪詢round robin、随機Random、根據響應時間權重等。
Ribbon 示例
Ribbon自定義配置
Ribbon脫離Eureka使用
使用原生的Ribbon API
實作上加 @LoadBalanced就具有Ribbon的功能:
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}