Codec2

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

旧城冷巷雨未停 提交于 2020-02-26 22:12:22
从本节开始将开始深入学习 Dubbo 网络通讯的底层实现细节,在深入学习 Dubbo 网络模型时,首先应从整体上了解 Dubbo 的网络通讯模型、线程模型是怎样的?下图是 Dubbo 官方给出的线程模型: 涉及如下方面: 网络调用客户端。 网络调用服务端。 网络传输,编解码、序列化。 网络服务端转发模型、线程池。 下面给出与上述网络模型对应的详细类图: 上述类做一个简单的结束,后续篇章将会一一详细分析。 基础接口 Resetable 可重置。 Endpoint 端(服务端、客户端基接口) 服务端 Server 服务端根接口 ExchangeServer 服务端交换机,默认实现Server,内部持有具体Server的实现。 HeaderExchangeServer 基于协议头的服务端交互机。 客户端 Channel 客户端通道描述接口。 Client 客户端基础接口,继承自Endpoint,Channel,主要定义重连接口。 传输层 Transporter 定义根据URL创建服务端或客户端,内部实现就是构建Server,Client对象。 编解码 Codec2 定义编解码对应的接口。 下面以Dubbo协议为例,底层网络通信组建基于Netty,Dubbo协议创建服务端的流程如下所示: 下面还是以Dubbo协议为例,底层网络通信组件基于Netty,Dubbo协议消费端(客户端

Dubbo分析之Serialize层

风流意气都作罢 提交于 2019-12-03 01:59:15
系列文章 Dubbo分析Serialize层 Dubbo分析之Transport层 Dubbo分析之Exchange 层 Dubbo分析之Protocol层 Dubbo整体设计 关于Dubbo的整体设计可以查看官方文档,下图可以清晰的表达Dubbo的整体设计: 1.图例说明 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口; 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系; 图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类; 图中蓝色虚线为初始化过程,即启动时组装链,红色实线为方法调用过程,即运行时调时链,紫色三角箭头为继承,可以把子类看作父类的同一个节点,线上的文字为调用的方法; 2.各层说明 config 配置层:对外配置接口,以 ServiceConfig, ReferenceConfig 为中心,可以直接初始化配置类,也可以通过 spring 解析配置生成配置类; proxy 服务代理层:服务接口透明代理,生成服务的客户端 Stub 和服务器端 Skeleton, 以 ServiceProxy 为中心,扩展接口为 ProxyFactory; registry 注册中心层:封装服务地址的注册与发现,以服务 URL 为中心,扩展接口为