dubbo 负载均衡

天大地大妈咪最大 提交于 2019-11-29 22:54:41

负载均衡:当有多个提供者的时候,如何选择 哪个提供者进行调用的负载算法。

在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 random 随机调用。


Dubbo 官方支持以下负载均衡策略:

 1.随机( random):按权重设置随机概率。此为默认算法

参考代码:com.alibaba.dubbo.rpc.cluster.loadbalance.RandomLoadBalance

 2.轮询(roundrobin):按公约后的权重设置轮询比率

参考代码:com.alibaba.dubbo.rpc.cluster.loadbalance.RoundRobinLoadBalance

3.最少活跃调用数 (leastactive):相同活跃数的随机,活跃数指调用前后计数差

参考代码:com.alibaba.dubbo.rpc.cluster.loadbalance.LeastActiveLoadBalance

4.一致性hash(consistenthash):相同的参数总是发到同一机器

参考代码:com.alibaba.dubbo.rpc.cluster.loadbalance.ConsistentHashLoadBalance

一致性hash主要应用于分布式缓存中,可以有效解决分布式存储结构下动态增加和删除节点锁带来的问题。

详细请 参考:https://mp.weixin.qq.com/s/yimfkNYF_tIJJqUIzV7TFA

<dubbo:reference interface="..." loadbalance="roundrobin" >

    <dubbo:paramter key="hash.arguments" value="0"/>

    <dubbo:paramter key="hash.nodes" value="320"/>//默认为160
</dubbo:reference>

配置:

服务端服务级别:

<dubbo:service interface="..." loadbalance="roundrobin" />

客户端服务级别:

<dubbo:reference interface="..." loadbalance="roundrobin" />

服务端方法级别:

<dubbo:service interface="...">
    <dubbo:method name="..." loadbalance="roundrobin"/>
</dubbo:service>

客户端方法级别:

<dubbo:reference interface="...">
    <dubbo:method name="..." loadbalance="roundrobin"/>
</dubbo:reference>

优先级:服务端服务级别 > 客户端服务级别 > 服务端方法级别 > 客户端方法级别:

负载均衡是针对于客户端来来讲的,服务端 配置也是给客户端配置的。



                          


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!