文章目錄
文章說明
一:協議
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:不同的序列化方案和通信協議組合,對應的通信效率也是有很大的差異。