Ribbon是Netflix 發佈的開源項目,主要功能是提供客戶端的軟件負載均衡算法,將Netflix的中間層服務鏈接在一塊兒。Ribbon客戶端組 件提供一系列完善的配置項如鏈接超時,重試等。簡單的說,就是在配置文件中列出Load Balancer後面全部的機器,Ribbon會自動的幫助你基於某種規則(如簡單輪詢,隨即鏈接等)去鏈接這些機器。咱們也很容易使用Ribbon實現 自定義的負載均衡算法。git
Ribbon提供了7個自帶的負載均衡器:github
策略 | 說明 |
BestAvailableRule | 選擇一個最小的併發請求的服務。 |
AvailabilityFilteringRule | 過濾掉一直鏈接失敗服務, 過濾掉那些高併發的服務( 超過配置閾值 )。 |
WeightedResponseTimeRule | 根據權重負載(基於相應時間),權重越小,被選中的可能性越低。 |
RetryRule | 在配置時間內當選擇的服務調用不成功, 在選定的負載均衡策略機上重試。 |
RoundRobinRule | 按順序輪訓選擇服務。 |
RandomRule | 隨機選擇一個服務。 |
ZoneAvoidanceRule | 對服務所在的區域和可用性,進行復雜的判斷後選擇一個服務。 |
在引入Spring Cloud Ribbon的依賴以後,就可以自動化構建下面這些接口的實現:算法
對於Ribbon的參數配置分爲局部和全局兩種:spring
全局:ribbon.<key>=<value>;併發
局部:<服務簽名>.ribbon.<key>=<value>;負載均衡