您的位置:首页 > 其它

RocketMQ原理解析-Remoting2. 通信层底层传输协议

2017-07-20 09:53 621 查看
RocketMq服务器与客户端通过传递RemotingCommand来交互,通过NettyDecoder,对RemotingCommand进行协议的编码与解码

 

协议格式 <length> <header length> <header data> <bodydata>
            1        2               3          4
协议分4部分,含义分别如下
1、大端4个字节整数,等于2、3、4长度总和
2、大端4个字节整数,等于3的长度
3、使用json序列化数据
4、应用自定义二进制序列化数据

 


 

Header部分数据是通过FastJson序列化数据


 

请求自定义字段都会实现CommandCustomHeader接口,在RemotingCommand序列化之前会将CommandCustomHeader的字段拷贝到Header的extFields中去,让后在整体通过Fastjson序列化

 

 Netty通过NettyEncoder、NettyDecoder自定义实现将RemotingCommand转换成byte[]

NettyEncoder:

 


 
NettyDecoder

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: