需求
记录学习和理解DubboProtocol的过程,避免后面忘记的尴尬!
正文
DubboProtocol.Refer:
功能
创建DubboInvoker
DubboInvoker
构成元素
- 服务 ServiceType:具体的服务,即引用的服务
- 协议URL Url:协议的URL,例如dubbo://1027.0.0.1:20880/com.alibaba.dubbo.XXXService?application=dubbo-consumer&….
- 已连接的客户端 ExchangeClient:包含连接的信息
- 现存Invoker列表 DubboInvokers:已经创建好的DubboInvoker集合
功能
承载着客户端所有的调用的接入以及衔接后续的处理。
创建ExchangeClient
ExchangeClient
构成元素
- 心跳机制
- 编解码规范
- 网络传输默认Netty
- 与客户端创建连接
连接类型:共享连接和非共享连接
1)共享连接:connections属性不设置或者设置为0,系统会根据URL中的IP+Port为Key创建一个共享连接
2)非共享连接:connections属性设置大于1,会创建相应数量的连接
创建规则:引用计数,连接创建前需要查看已有该连接是否已关闭,如果已关闭删除现有ExchangeClient则重新创建ExchangeClient;否则只在原有基础上增加引用计数- 连接创建后,如果客户端有请求过来,会根据已定义的requestHandler接手并进行后续相应处理