本文介绍 Dubbo 中的并发控制
配置样例
样例 1
- 限制
com.foo.BarService
的每个方法,服务器端并发执行(或占用线程池线程数)不能超过 10 个:<dubbo:service interface="com.foo.BarService" executes="10" />
样例 2
- 限制
com.foo.BarService
的sayHello
方法,服务器端并发执行(或占用线程池线程数)不能超过 10 个:<dubbo:service interface="com.foo.BarService"> <dubbo:method name="sayHello" executes="10" /> </dubbo:service>
样例 3
- 限制
com.foo.BarService
的每个方法,每客户端并发执行(或占用连接的请求数)不能超过 10 个:<dubbo:service interface="com.foo.BarService" actives="10" />
- 或
<dubbo:reference interface="com.foo.BarService" actives="10" />
样例 4
- 限制
com.foo.BarService
的sayHello
方法,每客户端并发执行(或占用连接的请求数)不能超过 10 个:<dubbo:service interface="com.foo.BarService"> <dubbo:method name="sayHello" actives="10" /> </dubbo:service>
- 或
<dubbo:reference interface="com.foo.BarService"> <dubbo:method name="sayHello" actives="10" /> </dubbo:service>
如果 和
都配了actives,`` 优先,参见: 11.3. XML 配置 。
Load Balance 均衡
- 配置服务的客户端的
loadbalance
属性为leastactive
,此 Loadbalance 会调用并发数最小的 Provider(Consumer端并发数)。<dubbo:reference interface="com.foo.BarService" loadbalance="leastactive" />
- 或
<dubbo:service interface="com.foo.BarService" loadbalance="leastactive" />
下一节:Dubbo 中服务端和客户端的连接控制