玩转Eureka+Ribbon系列之Ribbon的负载均衡策略
生活随笔
收集整理的這篇文章主要介紹了
玩转Eureka+Ribbon系列之Ribbon的负载均衡策略
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1、全局設置
- 1.1、隨機策略
- 1.2、輪詢策略
- 1.3、重試策略
- 1.4、最少并發數策略
- 1.5、可用過濾策略
- 1.6、響應時間+權重策略
- 1.7、區域權重策略
- 2、局部設置
| RandomRule | 隨機策略 | 隨機選擇 |
| RoundRobinRule | 輪詢策略 | 按照index循環 |
| RetryRule | 重試策略 | 在一個配置時間段內當選擇Server不成功,則一直嘗試使用subRule的方式選擇一個可用的server;輪詢策略的增強版 |
| BestAvailableRule | 最低并發策略 | 逐個考察server,如果server斷路器打開,則忽略,再選擇其中并發鏈接最低的server |
| AvailabilityFilteringRule | 可用過濾策略 | 過濾掉一直失敗并被標記為circuit tripped的server,過濾掉那些高并發鏈接的server(active connections超過配置的閾值)或者使用一個AvailabilityPredicate來包含過濾server的邏輯,其實就就是檢查status里記錄的各個Server的運行狀態; |
| WeightedResponseTimeRule | 響應時間加權重策略 | 根據server的響應時間分配權重,響應時間越長,權重越低,被選擇到的概率也就越低。響應時間越短,權重越高,被選中的概率越高,這個策略很貼切,綜合了各種因素,比如:網絡,磁盤,io等,都直接影響響應時間 |
| ZoneAvoidanceRule | 區域權重策略 | 綜合判斷server所在區域的性能,和server的可用性,輪詢選擇server并且判斷一個AWS Zone的運行性能是否可用,剔除不可用的Zone中的所有server |
1、全局設置
在cofig的配置文件里
1.1、隨機策略
@Beanpublic RandomRule getRandomRule() { //隨機策略return new RandomRule();}1.2、輪詢策略
@Beanpublic RoundRobinRule getRoundRobinRule() { //輪詢策略return new RoundRobinRule();}1.3、重試策略
@Beanpublic RetryRule getRetryRule() { //重試策略return new RetryRule();}1.4、最少并發數策略
@Beanpublic BestAvailableRule getBestAvailableRule() { //最少并發數策略return new BestAvailableRule();}1.5、可用過濾策略
@Beanpublic AvailabilityFilteringRule getAvailabilityFilteringRule() { //可用過濾策略return new AvailabilityFilteringRule();}1.6、響應時間+權重策略
@Beanpublic WeightedResponseTimeRule getWeightedResponseTimeRule() { //響應時間+權重策略return new WeightedResponseTimeRule();}1.7、區域權重策略
@Beanpublic ZoneAvoidanceRule getZoneAvoidanceRule() { //區域權重策略return new ZoneAvoidanceRule();}2、局部設置
service-provider: #服務名ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule總結
以上是生活随笔為你收集整理的玩转Eureka+Ribbon系列之Ribbon的负载均衡策略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10分钟零基础带你入门Ribbon小项目
- 下一篇: Ribbon为什么要加入点对点直连的功能