dubbo3 负载均衡器

dubbo3的负载均衡实现类目前共有5种,如下:

负载均衡器 Extension Name 逻辑 例子|
RandomLoadBalance random 根据provider 节点的权重(默认100)随机选择,存在误差 从provider url获取权重的示例:url.getParameter(“weight”, 100)
RoundRobinLoadBalance roundrobin 根据provider节点的权重,以加权平均的方式进行负载均衡,能够严格保证按权重大小进行负载。 A和B两个provider 节点的权重分别是8和2,该负载均衡器能够保证每10次中,A被分到8次,B被分到2次
LeastActiveLoadBalance leastactive 每次选择最小活跃并发的节点,如果存在活跃数和权重一样的节点,就随机从这些节点中选择一个。目的是使慢的provider处理更少的请求
ConsistentHashLoadBalance consistenthash 基于一致性hash算法实现的负载均衡器,当一个provider节点下线后,会平摊到其它provider节点,不会造成某一个节点压力过大。
从provider url获取算法参考:
hash.nodes = 虚拟节点数,默认 160
hash.arguments = 用于生成hash key的参数下标,可多个,用逗号分隔
hash.nodes=“160”
hash.arguments=“0,1”
SortestResponseLoadBalance shortestresponse 每次选择预计耗时最少的节点,如果存在预计耗时和权重一样的节点,就随机从这些节点中选择一个。目的是使慢的provider处理更少的请求

其中默认的负载均衡器就是RandomLoadBalance,也可以在consumer url中通过"loadbalance"参数指定。

你可能感兴趣的:(Dubbo,负载均衡,dubbo)