首页 > 代码库 > RocketMQ原理解析-Remoting
RocketMQ原理解析-Remoting
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
Remoting3.通信层整体交互图
RocketMQ原理解析-Remoting
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。