Dubbo并发控制和连接控制

博客主要介绍Dubbo的并发控制、连接控制、线程池控制和负载均衡。并发控制包括服务端和客户端,可控制接口所有方法或特定方法;连接控制也分服务端和客户端;线程池可限制服务端大小;负载均衡采用最不活跃优先算法。

Dubbo并发控制和连接控制

1. 并发控制

1.1. 服务端并发控制

限制com.foo.BarService的每个方法,服务器端并发执行(或占用线程池线程数)不能超过10个:

<dubbo:service interface="com.foo.BarService" executes="10" />

限制com.foo.BarService的sayHello方法,服务器端并发执行(或占用线程池线程数)不能超过10个:

<dubbo:service interface="com.foo.BarService">

<dubbo:method name="sayHello" executes="10" />

</dubbo:service>

1.2. 客户端并发控制

1.2.1. 控制到接口所有方法

限制com.foo.BarService的每个方法,每客户端并发执行(或占用连接的请求数)不能超过10个:

<dubbo:service interface="com.foo.BarService" actives="10" />

Or:

<dubbo:reference interface="com.foo.BarService" actives="10" />
1.2.2. 控制接口特定方法

限制com.foo.BarService的sayHello方法,每客户端并发执行(或占用连接的请求数)不能超过10个:

<dubbo:service interface="com.foo.BarService">

<dubbo:method name="sayHello" actives="10" />

</dubbo:service>

Or:

<dubbo:reference interface="com.foo.BarService">

<dubbo:method name="sayHello" actives="10" />

</dubbo:service>

如果dubbo:service和dubbo:reference都配了actives,dubbo:reference优先

2. 连接控制

2.1. 服务端连接控制

限制服务器端接受的连接不能超过10个:(以连接在Server上,所以配置在Provider上)

<dubbo:provider protocol="dubbo" accepts="10" />

<dubbo:protocol name="dubbo" accepts="10" />

2.2. 客户端连接控制

限制客户端服务使用连接连接数:(如果是长连接,比如Dubbo协议,connections表示该服务对每个提供者建立的长连接数)

<dubbo:reference interface="com.foo.BarService" connections="10" />

Or:

<dubbo:service interface="com.foo.BarService" connections="10" />

如果dubbo:service和dubbo:reference都配了connections,dubbo:reference优先

3. 线程池控制

限制服务端线程池大小为固定大小200(默认值200)

<dubbo:provider threads=200/>

4. Load Balance均衡

配置服务的客户端的loadbalance属性为leastactive,此为最不活跃优先的负载均衡算法,此Loadbalance会调用并发数最小的Provider(Consumer端并发数)。

<dubbo:reference interface="com.foo.BarService" loadbalance="leastactive" />

Or:

<dubbo:service interface="com.foo.BarService" loadbalance="leastactive" />

本文来源:https://blog.csdn.net/qq_31326741/article/details/50807833

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值