併發控制

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>

如果 `<dubbo:service>` 和 `<dubbo:reference>` 都配置了 actives,則 `<dubbo:reference>` 優先,詳見:[配置覆蓋策略](../../../reference-manual/config/principle/)

負載平衡

設定服務客戶端 `loadbalance` 屬性為 `leastactive`,此負載平衡策略會呼叫並行數最小(消費者端並行)的 Provider。

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

或者

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

最後修改日期:2023 年 1 月 2 日:增強英文文件 (#1798) (95a9f4f6c1c)