1. executes 限流 – 仅提供者端
该属性仅能设置在提供者端。可以设置为接口级别,也可以设置为方法级别。
限制的是服务(方法)并发执行数量。
<dubbo:service interface="com.abc.service.SomeService" ref="someService" executes="10"/>
<dubbo:service interface="com.abc.service.SomeService" ref="someService">
<dubbo:method name="hello" executes="10"/>
</dubbo:service>
2. accepts 限流 – 仅提供者端
该属性仅可设置在提供者端的dubbo:protocol/ 内。
用于对指定协议的连接数量进行限制
<!--当前提供者使用dubbo协议的最多接收10个消费者连接-->
<dubbo:protocol name="dubbo" port="2019" accepts="10"/>
3.actives 限流 – 两端
该限流方式可以设置在提供者端,也可以设置在消费者端。
可以设置为接口级别,也可以设置为方法级别。
A 、 提供者端限流
根据消费者与提供者间建立的连接类型的不同,其意义也不同:
- 长连接:表示当前长连接最多可以处理的请求个数。与长连接的数量没有关系。
- 短连接:表示当前服务可以同时处理的短连接数量。
<dubbo:service interface="com.abc.service.SomeService" ref="someService" actives="10"/>
<dubbo:service interface="com.abc.service.SomeService2" ref="someService2">
<dubbo:method name="hello" actives="10"/>
</dubbo:service>
B 、 消费者端限流
根据消费者与提供者间建立的连接类型的不同,其意义也不同:
- 长连接:表示当前消费者所发出的长连接中最多可以提交的请求个数。与长连接的数量
没有关系。 - 短连接:表示当前消费者可以提交的短连接数量。
<dubbo:reference interface="com.abc.service.SomeService" id="someService" actives="10"/>
<dubbo:reference interface="com.abc.service.SomeService2" id="someService2">
<dubbo:method name="hello" actives="10"/>
</dubbo:reference>
4.connections 限流 – 两端
限定连接的个数。对于短连接,该属性效果与actives相同。但对于长连接,其限制的是长连接的个数。
一般情况下,我们会使 connectons 与 actives 联用,让 connections 限制长连接个数,让
actives 限制一个长连接中可以处理的请求个数。联用前提:使用默认的 Dubbo 服务暴露协
议。
A 、 提供者端限流
<dubbo:service interface="com.abc.service.SomeService" ref="someService" connectons="10"/>
<dubbo:service interface="com.abc.service.SomeService2" ref="someService2">
<dubbo:method name="hello" connectons="10"/>
</dubbo:service>
B 、 消费者端限流
<dubbo:reference interface="com.abc.service.SomeService" id="someService" connectons="10"/>
<dubbo:reference interface="com.abc.service.SomeService2" id="someService2">
<dubbo:method name="hello" connectons="10"/>
</dubbo:reference>