zoukankan      html  css  js  c++  java
  • 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

     
     
     
  • 相关阅读:
    Jmeter运行原理
    hihoOffer收割练习20题目2
    hihoOffer收割练习20题目1
    STL-map容器
    STL-map容器
    2017多校合练1
    2017多校合练1
    STL之map基础知识
    STL之map基础知识
    DP入门
  • 原文地址:https://www.cnblogs.com/wxd0108/p/6055132.html
Copyright © 2011-2022 走看看