RocketMQ原理解析-Remoting2. 通信层底层传输协议
2017-12-21 18:20
579 查看
http://blog.csdn.net/quhongwei_zhanqiu/article/details/39154155
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服务器与客户端通过传递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原理解析-Remoting2. 通信层底层传输协议
- RocketMQ原理解析-Remoting2. 通信层底层传输协议
- RocketMQ原理解析-Remoting1. 通信层实现
- RocketMQ原理解析-Remoting1. 通信层实现
- RocketMQ原理解析-Remoting3.通信层整体交互图
- 【RocketMQ原理解析2.1】源码目录结构介绍&Remoting通信层
- RocketMQ原理解析-Remoting3.通信层整体交互图
- RocketMQ原理解析-Remoting3.通信层整体交互图
- iOS 底层解析weak的实现原理(包含weak对象的初始化,引用,释放的分析)
- TCP协议可靠性数据传输实现原理分析
- 21. Dubbo原理解析-通信层之请求响应活动图
- spring底层原理解析
- 浅谈HTTPS传输协议原理
- 安全传输协议SSL和TLS及WTLS的原理
- RocketMQ原理及源码解析(汇总)
- Http协议原理解析第一篇
- SATA3.2协议传输层Flow Control机制解析
- 企业邮件服务器软件之传输原理解析
- Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
- RocketMQ原理解析-producer 3.如何发送顺序消息