连接控制功能可以使用户能够控制和管理进出服务器连接数,限制连接数并设置超时,以确保 Dubbo 系统的稳定性和性能,还允许用户根据 IP 地址、端口和协议配置不同级别的访问控制,保护系统免受恶意流量的影响,并降低服务中断的风险,此外提供了一种监视当前流量和连接状态的方法。
限制服务器端接受的连接不能超过 10 个 1:
<dubbo:provider protocol="dubbo" accepts="10" />
或
<dubbo:protocol name="dubbo" accepts="10" />
限制客户端服务使用连接不能超过 10 个 2:
<dubbo:reference interface="com.foo.BarService" connections="10" />
或
<dubbo:service interface="com.foo.BarService" connections="10" />
如果 <dubbo:service>
和 <dubbo:reference>
都配了 connections,<dubbo:reference>
优先,参见:配置的覆盖策略
允许消费者在提供者接收请求之前向提供者发送请求,消费者等待提供者准备就绪,然后将发送消费者者的请求,当消费者需要连接到提供者,提供者尚未准备好接受请求时,确保在正确的时间发送请求,防止消费者被速度慢或不可用的提供程序阻止。
粘滞连接用于有状态服务,尽可能让客户端总是向同一提供者发起调用,除非该提供者挂了,再连另一台。
粘滞连接将自动开启 延迟连接,以减少长连接数。
<dubbo:reference id="xxxService" interface="com.xxx.XxxService" sticky="true" />
Dubbo 支持方法级别的粘滞连接,如果你想进行更细粒度的控制,还可以这样配置。
<dubbo:reference id="xxxService" interface="com.xxx.XxxService">
<dubbo:method name="sayHello" sticky="true" />
</dubbo:reference>
当消费者请求服务时,实际使用服务时才建立真正的连接,避免不必要的连接来减少延迟并提高系统稳定性。
延迟连接用于减少长连接数。当有调用发起时,再创建长连接。
<dubbo:protocol name="dubbo" lazy="true" />
该配置只对使用长连接的 dubbo 协议生效。