美文网首页
dubbo协议

dubbo协议

作者: 忘净空 | 来源:发表于2017-12-26 16:05 被阅读26次

简介

dubbo协议是dubbo默认的协议,它的特点如下:

  1. 连接个数:单连接

  2. 连接方式:长连接

  3. 传输协议:TCP

  4. 传输方式:NIO异步传输

  5. 序列化:Hessian二进制序列化

  6. 适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。

  7. 适用场景:常规远程服务方法调用

Dubbo 协议采用经典定长包头+变长包体的协议设计,包头记录了数据的序列化方式,请求状态,数据长度等信息,包体是请求/响应对象序列化后的二进制数据。格式见下图


字段说明:2字节short类型的Magic 1字节的消息标志位 5位序列化id 1位心跳还是正常请求 1位双向还是单向 1位请求还是响应 1字节的状态位 8字节的消息id 4字节数据长度

网络传输层传输的就是这种二进制数据,基本流程如下


源码走读

  1. request编码


    ExchangeCodec类
  2. request解码(DecodeableRpcInvocation.decode())

  3. response编码(DubboCodec.encodeResponseData())

  4. request解码(DecodeableRpcResult.decode())

关于更多dubbo支持的RPC协议大家可以参考这篇文章

相关文章

网友评论

      本文标题:dubbo协议

      本文链接:https://www.haomeiwen.com/subject/ebzdgxtx.html