源码分析Dubbo网络通讯篇概要总结(类图一览、服务端、客户端网络构造流程一览)

旧城冷巷雨未停 提交于 2020-02-26 22:12:22

从本节开始将开始深入学习 Dubbo 网络通讯的底层实现细节,在深入学习 Dubbo 网络模型时,首先应从整体上了解 Dubbo 的网络通讯模型、线程模型是怎样的?下图是 Dubbo 官方给出的线程模型:

涉及如下方面:

  • 网络调用客户端。
  • 网络调用服务端。
  • 网络传输,编解码、序列化。
  • 网络服务端转发模型、线程池。

下面给出与上述网络模型对应的详细类图:

上述类做一个简单的结束,后续篇章将会一一详细分析。

  1. 基础接口
  • Resetable 可重置。
  • Endpoint 端(服务端、客户端基接口)
  1. 服务端
  • Server 服务端根接口
  • ExchangeServer 服务端交换机,默认实现Server,内部持有具体Server的实现。
  • HeaderExchangeServer 基于协议头的服务端交互机。
  1. 客户端
  • Channel 客户端通道描述接口。
  • Client 客户端基础接口,继承自Endpoint,Channel,主要定义重连接口。
  1. 传输层
  • Transporter 定义根据URL创建服务端或客户端,内部实现就是构建Server,Client对象。
  1. 编解码
  • Codec2 定义编解码对应的接口。 下面以Dubbo协议为例,底层网络通信组建基于Netty,Dubbo协议创建服务端的流程如下所示:

下面还是以Dubbo协议为例,底层网络通信组件基于Netty,Dubbo协议消费端(客户端)建立网络流程图如下:

上述这些流程图将会在后文的服务端、客户端启动流程时重点分析。


作者介绍:丁威,《RocketMQ技术内幕》作者,RocketMQ 社区布道师,公众号:中间件兴趣圈 维护者,目前已陆续发表源码分析Java集合、Java 并发包(JUC)、Netty、Mycat、Dubbo、RocketMQ、Mybatis等源码专栏。可以点击链接:中间件知识星球,一起探讨高并发、分布式服务架构,交流源码。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!