集群下Dubbo負載均衡配置


  在集群負載均衡時,Dubbo提供了4種均衡策略,默認為Random(隨機調用)

負載均衡策略:

  1)、Random LoadBalance(隨機,按照權重的設置隨機概率)

  

  2)、RoundRobin LoadBalance(輪詢,按照權重設置輪詢比率)

請求次數 提供者ID
1 服務提供者1
2 服務提供者2
3 服務提供者3
4 服務提供者1
5 服務提供者2
6 服務提供者2
7 服務提供者2

  3)、LeastActive LoadBalance(最少活躍數,ping值(延遲低)的調用,相同延遲的情況下隨機)

  由於服務提供者1的延遲低,在保證延遲不變的情況下,服務提供者1將始終被調用

 

  4)、ConsistentHash LoadBalance

  一致性Hash,相同參數的請求總是發到同一個服務提供者(相同參數默認是指請求的第一個參數)

  當原本發送到特定服務提供者的請求,而該服務提供者剛好宕掉,那么該請求將基於虛擬節點平攤到其它服務提供者,不會引起劇烈的變動。

 

*修改默認的負載均衡配置

  通過暴露或引用服務的loadbalance屬性修改

  

1 @Component  //org.springframework.stereotype.Component
2 @Service(loadbalance = "roundrobin")    //com.alibaba.dubbo.config.annotation.Service
3 public class UserServiceImpl implements UserService {
4   ...      
5 }
1     @Reference(loadbalance = "roundrobin")
2     private UserService userService;

 

*修改負載均衡權重

  通過暴露服務的weight屬性修改

1 @Component  //org.springframework.stereotype.Component
2 @Service(loadbalance = "roundrobin",weight = 100)    //com.alibaba.dubbo.config.annotation.Service
3 public class UserServiceImpl implements UserService {
4   ...  
5 }

 

**一般在項目中不會在代碼層面指定權重而是在監控中心(dubbo-admin)中對服務動態的指定權重。


免責聲明!

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



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