ribbon配置負載均衡策略


ribbon的負載均衡策略

  • com.netflix.loadbalancer.RandomRule:從提供服務的實例中以隨機的方式;
  • com.netflix.loadbalancer.RoundRobinRule:以線性輪詢的方式,就是維護一個計數器,從提供服務的實例中按順序選取,第一次選第一個,第二次選第二個,以此類推,到最后一個以后再從頭來過;
  • com.netflix.loadbalancer.RetryRule:在RoundRobinRule的基礎上添加重試機制,即在指定的重試時間內,反復使用線性輪詢策略來選擇可用實例;
  • com.netflix.loadbalancer.WeightedResponseTimeRule:對RoundRobinRule的擴展,響應速度越快的實例選擇權重越大,越容易被選擇;
  • com.netflix.loadbalancer.BestAvailableRule:選擇並發較小的實例;
  • com.netflix.loadbalancer.AvailabilityFilteringRule:先過濾掉故障實例,再選擇並發較小的實例;
  • com.netflix.loadbalancer.ZoneAwareLoadBalancer:采用雙重過濾,同時過濾不是同一區域的實例和故障實例,選擇並發較小的實例。

配置方法

1.常用配置

 ribbon:
  ConnectTimeout: 1000 #服務請求連接超時時間(毫秒)
  ReadTimeout: 3000 #服務請求處理超時時間(毫秒)
  OkToRetryOnAllOperations: true #對超時請求啟用重試機制
  MaxAutoRetriesNextServer: 1 #切換重試實例的最大個數
  MaxAutoRetries: 1 # 切換實例后重試最大次數
  NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #修改負載均衡算法

2.負載均衡算法的配置可以通過java代碼的方式來實現

	@Bean
	public IRule loadBalancer(){
		return new AvailabilityFilteringRule();
	}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM