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
协议格式 <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原理解析2.1】源码目录结构介绍&Remoting通信层
- RocketMQ原理解析-Remoting1. 通信层实现
- RocketMQ原理解析-Remoting
- RocketMQ原理解析-producer 6.消息在broker落地之事物消息
- RocketMQ原理解析-broker 4.HA & master slave
- RocketMQ原理解析-producer 5.消息在broker落地之普通消息
- RocketMQ原理解析-broker 6.索引服务
- RocketMQ原理解析-consumer 1.启动
- RocketMQ原理解析-namesrv
- 【RocketMQ原理解析1.1】整体介绍&IDE编译并启动RocketMQ的第一个例子
- RocketMQ原理解析-broker 1. broker的启动
- RocketMQ原理解析-broker 3.load&recover
- RocketMQ原理解析-consumer 4.长轮询push消息—并发消费消息
- RocketMQ原理解析-consumer 1.启动
- RocketMQ原理解析-broker 2.消息存储
- RocketMQ原理解析-consumer 4.长轮询push消息—并发消费消息
- RocketMQ原理解析-consumer 5.push消费-顺序消费消息