文章目錄
- 1.1、随機政策
- 1.2、輪詢政策
- 1.3、重試政策
- 1.4、最少并發數政策
- 1.5、可用過濾政策
- 1.6、響應時間+權重政策
- 1.7、區域權重政策
政策類 | name | 描述 |
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、随機政策
@Bean
public RandomRule getRandomRule() { //随機政策
return new RandomRule();
}
1.2、輪詢政策
@Bean
public RoundRobinRule getRoundRobinRule() { //輪詢政策
return new RoundRobinRule();
}
1.3、重試政策
@Bean
public RetryRule getRetryRule() { //重試政策
return new RetryRule();
}
1.4、最少并發數政策
@Bean
public BestAvailableRule getBestAvailableRule() { //最少并發數政策
return new BestAvailableRule();
}
1.5、可用過濾政策
@Bean
public AvailabilityFilteringRule getAvailabilityFilteringRule() { //可用過濾政策
return new AvailabilityFilteringRule();
}
1.6、響應時間+權重政策
@Bean
public WeightedResponseTimeRule getWeightedResponseTimeRule() { //響應時間+權重政策
return new WeightedResponseTimeRule();
}
1.7、區域權重政策
@Bean
public ZoneAvoidanceRule getZoneAvoidanceRule() { //區域權重政策
return new ZoneAvoidanceRule();
}
2、局部設定
service-provider: #服務名
ribbon:
NFLoadBalancerRuleClassName: