开发者社区> 问答> 正文

Dubbo框架的封装思想及RPC协议标准是怎样的?

Dubbo框架的封装思想及RPC协议标准是怎样的?

展开
收起
1358896759097293 2021-04-18 23:25:35 684 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    Dubbo的封装规定严格,华为自定了一套通信加密协议,协议基于GDP或UDP协议进行封装,是一种格式协议,只有自己能解析,QQ或者微信的协议,只有腾讯能解析。Dubbo思想也参考了经典分布式网络通信中的分包定义格式和思想规范。 2.png 如上图所示, 1-4 Version; 5-8 Header Length; 8-13 DifferentiatedServicesCodePoint; 14-15 ExplicitCongestionNotification; 16-18 ,19-31 Totall Length ... 每个比特位都有严格定义,这种严格的消息定义主要用于自定义, Dubbo的通信协议编码指的是 Dubbo的自定义消息编码的格式规范。 同样解码需要获取IP地址、有效的消息载体,都有严格定义,定义的字段越丰富,消息通信的语义功能越强大,消息的封装也越复杂,如只留1个字节,8个比特作为这个消息的额外信息,后面的话全是消息有效体,消息有效载体利用率就较高。 上图中,总共有128个比特,这里作为前置所有消息的扩展定义,第一阶段入IP包,然后 TCP包的封装,Dubbo消息包包括封装、序列化ID、魔术编码的的比特位、状态码等。 Dubbo在原始的ip、tcp协议之上进行了再次封装,后面在对象或者数据传时候做了序列化,序列成二进制格式,这样会效率更高,如果JSON就会涉及到更复杂的编码问题。实际上Dubbo的整个原生协议的封装足够复杂,128个比特位自己定义用于16个字节,有效载荷就比较浪费。 Dubbo除了自定义协议的设计思想外,也和其他几个典型聊天软件已对比,有的用标准协议,有的自定义协议,自定义协议封闭性更强效率更高,行业标准协议考虑跨平台的通用性及安全性问题。

    2021-04-19 11:32:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Dubbo开源现状与2.7规划 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载