Netty第二章 2020 7-4——Netty在Dubbo中的应用(3)关于单一长连接

本文深入探讨了Dubbo中单一长连接的概念,特别是低版本Dubbo如何通过Netty实现单一长连接。分析了connections参数的三种配置情况:0、1和N,分别对应全局共享连接、服务级别单一长连接和多个长连接。在社区版Dubbo 2.7.x中,新增的shareconnections配置允许全局配置多个非单一的长连接。
摘要由CSDN通过智能技术生成

dubbo中单一长连接的理解和常见误区

1.低版本dubbo

dubbo默认是单一长连接,那么这个默认在哪里,长连接又是什么意思,单一长连接又是什么意思呢?

首先dubbo底层用的是netty,所以长连接说的也是通过netty创建的连接,本文主要说的是dubbo中单一长连接的概念和理解,关于netty不做更多展开。

话不多说,直接上源码:

DubboProtocol在refer的时候,也就是consumer端启动去发现服务的时候,会调用getClients方法

该方法会检查xml中配置的一个叫做connections的参数,如果用户没有配置,那么缺省配置就是0,0代表共享连接,会调用getSharedClient这个方法而不是initClient方法。getSharedClient方法中会从一个叫做referenceClientMap的连接缓存中,该缓存的key是ip+端口,value就是client,所以就做到了ip+端口唯一对应一个client,这就是单一长连接的概念——consumer端所有的dubbo服务,无论有多少个service,都共享这一个连接。

如果对于service A,connections不是0(connections是配置在service上的),用户自己配置了一个非零的值N,那么就不会走getSharedClient,而是走initClient,产生的效果就是consumer端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值