码迷,mamicode.com
首页 > 其他好文 > 详细

集群下Dubbo负载均衡配置

时间:2019-02-10 23:16:56      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:imp   config   其它   org   中心   reference   admin   默认   com   

  在集群负载均衡时,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)中对服务动态的指定权重。

集群下Dubbo负载均衡配置

标签:imp   config   其它   org   中心   reference   admin   默认   com   

原文地址:https://www.cnblogs.com/fanqisoft/p/10360344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!