并发控制

Dubbo 中的并发控制

配置示例

示例 1

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

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

示例 2

为了限制 com.foo.BarServicesayHello 方法,服务器端(或线程池中的线程数)的并发执行不能超过 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.BarServicesayHello 方法,每个客户端(或占用连接的请求数)的并发执行不能超过 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>

如果 <dubbo:service><dubbo:reference> 都配置了 actives,则 <dubbo:reference> 优先,参见:[配置覆盖策略](../../../reference-manual/config/principle/).

负载均衡

配置服务的客户端侧的 loadbalance 属性为 leastactive,此负载均衡将调用并发量最小的 Provider(Consumer 端并发量)。

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

或者

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

上次修改时间:2023 年 1 月 2 日:增强 en 文档 (#1798) (95a9f4f6c1c)