我的架构梦:(二十九)Dubbo源码分析之网络通信原理剖析
Dubbo源码分析之网络通信原理剖析
- 一、数据包结构详解
- 二、数据协议ExchangeCodec详解
- 三、处理粘包和拆包问题
这一篇我们主要来讲Dubbo
在网络中如何进行通信的。由于请求都是基于TCP
的,那么Dubbo
中是如何处理粘包和拆包的问题。
dubbo
协议采用固定长度的消息头(16字节)和不定长度的消息体来进行数据传输,消息头定义了底层
框架(netty
)在IO
线程处理时需要的信息,协议的报文格式如下:
一、数据包结构详解
1、协议详情
- Magic - Magic High & Magic Low (16 bits)
标识协议版本号,Dubbo 协议:0xdabb - Serialization ID (5 bit)
标识序列化类型:比如 fastjson 的值为6。 - Event (1 bit)
标识 ,例如,心跳事件。如果这是一个事件,则设置为1。 - 2 Way (1 bit)
仅在 Req/Res 为1(
还没有评论,来说两句吧...