转载自:https://blog.youkuaiyun.com/qq924862077/article/details/79676932
Dubbo提供了负载均衡,接口如下:
//默认负载均衡算法是random
@SPI(RandomLoadBalance.NAME)
public interface LoadBalance {
/**
* select one invoker in list.
*
* @param invokers invokers.
* @param url refer url
* @param invocation invocation.
* @return selected invoker.
*/
//根据负载均衡算法获取将要调用的Invoker
@Adaptive("loadbalance")
<T> Invoker<T> select(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException;
}
Dubbo提供的负载均衡器有如下:
- org.apache.dubbo.rpc.cluster.loadbalance.RandomLoadBalance
- org.apache.dubbo.rpc.cluster.loadbalance.RoundRobinLoadBalance
- org.apache.dubbo.rpc.cluster.loadbalance.ConsistentHashLoadBalance
- org.apache.dubbo.rpc.cluster.loadbalance.LeastActiveLoadBalance
- …
配置使用
服务端服务级别:<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>
本文介绍了Dubbo中负载均衡的实现方式及配置方法。详细解释了Random、RoundRobin、ConsistentHash和LeastActive等几种内置负载均衡策略,并展示了如何在服务端和服务客户端进行不同级别的配置。
4057

被折叠的 条评论
为什么被折叠?



