前言
从本节开始将开始深入学习Dubbo网络通讯的底层实现细节,在深入学习Dubbo网络模型时,首先应从整体上了解Dubbo的网络通讯模型、线程模型是怎样的?下图是Dubbo官方给出的线程模型:
涉及如下方面:
1)网络调用客户端。
2)网络调用服务端。
3)网络传输,编解码、序列化。
4)网络服务端转发模型、线程池。
下面给出与上述网络模型对应的详细类图:
上述类做一个简单的结束,后续篇章将会一一详细分析。
基础接口 1) Resetable 可重置。 2) Endpoint 端(服务端、客户端基接口)
服务端 1)Server 服务端根接口 2)ExchangeServer 服务端交换机,默认实现Server,内部持有具体Server的实现。 3)HeaderExchangeServer 基于协议头的服务端交互机。
客户端 1)Channel 客户端通道描述接口。 2)Client 客户端基础接口,继承自Endpoint,Channel,主要定义重连接口。
传输层 1)Transporter 定义根据URL创建服务端或客户端,内部实现就是构建Server,Client对象。
编解码 1)Codec2 定义编解码对应的接口。 下面以Dubbo协议为例,底层网络通信组建基于Netty,Dubbo协议创建服务端的流程如下所示:
服务端
1)Server 服务端根接口
2)ExchangeServer 服务端交换机,默认实现Server,内部持有具体Server的实现。
3)HeaderExchangeServer 基于协议头的服务端交互机。
传输层
1)Transporter 定义根据URL创建服务端或客户端,内部实现就是构建Server,Client对象。
下面还是以Dubbo协议为例,底层网络通信组件基于Netty,Dubbo协议消费端(客户端)建立网络流程图如下:
上述这些流程图将会在后文的服务端、客户端启动流程时重点分析。
文/编辑 by Justin
原创 by 丁威
原文始发于微信公众号(Justin的后端书架):