Concurrency Control

    Concurrency control in dubbo

    Example of configuration

    • Example 1: Control the concurrency of all method for a specified service interface at server-side

    Limit each method of com.foo.BarService to no more than 10 concurrent server-side executions (or take up thread pool threads):

    <dubbo:service interface="com.foo.BarService" executes="10" />
    
    • Example 2: Control the concurrency of specified method for a specified service interface at server-side

    Limit the sayHello method of com.foo.BarService to no more than 10 concurrent server-side executions(or take up thread pool threads):

    <dubbo:service interface="com.foo.BarService">
        <dubbo:method name="sayHello" executes="10" />
    </dubbo:service>
    
    • Example 3: Control the concurrency of all method for a specified service interface at client-side Limit each method of com.foo.BarService to no more than 10 concurrent client-side executions (or take up thread pool threads):
    <dubbo:service interface="com.foo.BarService" actives="10" />
    

    OR

    <dubbo:reference interface="com.foo.BarService" actives="10" />
    
    • Example 4: Control the concurrency of specified method for a specified service interface at client-side Limit the sayHello method of com.foo.BarService to no more than 10 concurrent client-side executions(or take up thread pool threads):
    <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>
    

    If <dubbo:service> and <dubbo:reference> are both configured with actives,<dubbo:reference> is preferred.Ref to:Configuration coverage strategy.

    Load Balance

    You can config the loadbalance attribute with leastactive at server-side or client-side,then the framework will make consumer call the minimum number of concurrent one.

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

    OR

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