文章目录
文章说明
一:协议
1:什么是协议
2:协议和序列化关系
3:协议组成
(一):头信息
(二):体信息
4:Dubbo3中常见的协议
5:不同协议的通信效率比较
文章说明
本文内容整理自《孙哥说Dubbo系列视频课程》,孙帅老师课程细致、全面、深入、性价比极高。B站搜孙帅suns可以找到对应的试听视频,或者直接添加老师微信号suns45与他直接联系
一:协议
1:什么是协议
客户端[消费者]与服务端[提供者]在传输数据时双⽅的约定。
大致就是除了咱们通信双方需要传递的真实数据(体信息)还包括大量的描述信息,这个描述信息被称为头信息。数据传递过去之后,经过反序列化,然后按照协议的描述信息进行拆解传递的数据就可以拿到最终的真实传递的数据,也就是体信息,比如咱们Http请求的请求参数或者是RPC时候的方法的参数。
2:协议和序列化关系
序列化是协议数据的传输⼀种格式。⽬的是为了提⾼协议在⽹络传输的效率。
同样的协议化数据,经过不同的序列化手段序列化之后,在网络传输中传输的大小是不一致的,具有不同的传输效率和对方想要获取到你实际的协议数据,也需要进行反序列化获取相应的协议数据,然后进行拆解,最终获取到真实的传输数据。
3:协议组成
(一):头信息
幻术:为了约束双方的新人关系,证明这是标准的通信数据的一种格式数据,相当于是通信双方的街头暗号。想要通信,暗号不能错!
序列化方式:数据传输的过程中,我们使用的是什么序列化方式,知道了序列化方式之后,我们才能基于具体的序列化方式记性反序列化传输过来的数据,然后在拆解协议数据。
操作方向性:客户端给服务端发情求,还是服务端给客户端响应请求
状态信息:基本上就是服务端给客户端返回的状态信息
数据大小:数据大小指的是,协议体数据量的大小,解决半包粘包的问题。
(二):体信息
体信息就是数据想要传输的信息本身,比说上图中的JSON
4:Dubbo3中常见的协议
dubbo协议:
dubbo在默认情况下使用的是dubbo协议,这是Dubbo定义的私有协议,应用在TCP层次。
rest协议:
rest协议这里主要是Http协议。为什么rest协议也很重要,Dubbo支持这个协议之后,就可以跟SpringCloud进行无缝对接了。
triple协议:
Dubbo3开发的新协议。
grpc协议:
云原生时代,GRPC十分重要了,Dubbo想要与云原生进行结合,必须支持GRPC。
剩下还有:thrift协议 webservice协议、rocketmq协议、redis协议、memcached协议,了解就好,用的很少。
5:不同协议的通信效率比较
看到这个东西我们可以明确两个概念:
1:不同的协议,可以挑选不同的序列化方案。
2:不同的序列化方案和通信协议组合,对应的通信效率也是有很大的差异。