码迷,mamicode.com
首页 > 其他好文 > 详细

RocketMQ原理解析-Remoting

时间:2016-11-11 19:27:40      阅读:426      评论:0      收藏:0      [点我收藏+]

标签:pop   json序列化   理解   art   ade   har   command   等于   custom   

Remoting2. 通信层底层传输协议

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

技术分享

 

技术分享
 
 
 

RocketMQ原理解析-Remoting

标签:pop   json序列化   理解   art   ade   har   command   等于   custom   

原文地址:http://www.cnblogs.com/wxd0108/p/6055132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!