昆明java培训
达内昆明广州春城路

18487146383

热门课程

dubbo服务的负载均衡

  • 时间:2016-11-04
  • 发布:昆明Java培训
  • 来源:java教程

昆明Java培训机构的老师这一期给大家讲负载均衡。

基本概念

负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常指将请求/数据均匀分摊到多个操作单元(集群服务节点)上执行,负载均衡的关键在于均匀。dubbo在服务集群负载均衡时,提供了多种均衡策略,缺省为random随机调用。

Random LoadBalance随机,按权重设置随机概率。

RoundRobin LoadBalance轮循,按公约后的权重设置轮循比率。

LeastActive LoadBalance最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。

ConsistentHash LoadBalance一致性Hash,相同参数的请求总是发到同一提供者。

负载均衡配置

同理,负载均衡可以在消费者或者提供者中配置。

<!--\mcweb\mcweb-web\src\main\resources\spring\dubbo-consumer.xml-->

<dubbo:reference

interface="com.mcweb.api.service.IUserService"

id="userService"

check="false"

protocol="dubbo"

cluster="failover"

retries="2"

loadbalance="random"

/>

我们采用random随机均衡算法,在dubbo管控台中设置mcweb-logic(192.168.2.1:20880),mcweb-logic-a(192.168.2.1:20881),mcweb-logic-b(192.168.2.1:20882)的权重分别为200,100,50。

wps88FB.tmp

看看mcweb-web的调用情况:

0:Get user from mcweb-logic-b

1:Get user from mcweb-logic-a

2:Get user from mcweb-logic-a

3:Get user from mcweb-logic-b

4:Get user from mcweb-logic-a

5:Get user from mcweb-logic

6:Get user from mcweb-logic

7:Get user from mcweb-logic-b

8:Get user from mcweb-logic-a

9:Get user from mcweb-logic-b

10:Get user from mcweb-logic

11:Get user from mcweb-logic-a

12:Get user from mcweb-logic-a

13:Get user from mcweb-logic-a

14:Get user from mcweb-logic

15:Get user from mcweb-logic

16:Get user from mcweb-logic

17:Get user from mcweb-logic

18:Get user from mcweb-logic-b

19:Get user from mcweb-logic-b

20:Get user from mcweb-logic

21次调用中,mcweb-logic调用了8次,mcweb-logic-a调用了7次,mcweb-logic-b调用了6次,符合权重越大,调用次数越多。随着调用次数的增多,每个节点上的服务被调用的次数会逐渐趋向设置的权重所占的比率。

上一篇:dubbo服务的集群容错
下一篇:dubbo服务的线程模型

dubbo服务的线程模型

dubbo服务的负载均衡

dubbo服务的集群容错

dubbo服务的启动检查

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货