网络协议——RPC协议(计算机网络的基本概念)
網絡協議——RPC協議
遠程調用協議,用于定義服務之間的接口調用規范標準
1、RPC調用標準
1.1、RPC結構
- 客戶端(服務端):執行邏輯進行本地調用
- Stub:對參數進行封裝/解封裝
- RPCRuntime:發送/接收請求/響應
1.2、ONC RPC
最早的RPC框架之一
1.2.1、外部數據表示法(XDR)
規定交互協議的文件,包括:
- XID:一對請求/響應的唯一標識
- CALL:請求為0,響應為1
- RPC Version:RPC協議的版本號
- Program Number:服務端程序的編號
- Version Number:服務端程序的版本號
- Procedure Number:調用的方法
- Credential、Verifier:認證鑒權
- Remote Procedure Parameters:參數列表
1.2.2、端口映射器(PortMapper)
服務提供方的RPC程序啟動時將自己的服務端口注冊在PortMapper中,服務調用方從PortMapper中找映射的端口,然后再和服務提供方建立連接
2、簡單對象訪問協議(SOAP)
與古老的RPC協議相比,雙方的SOAP協議沒必要完全一致(參數順序、參數個數等),更加靈活
2.1、Web服務描述語言(WSDL)
也是一個XML,描述了方法名、服務名、端口、請求參數等信息,通過在服務地址后加”?wsdl”查看
2.2、統一描述、發現和集成協議(UDDI)
以SOAP協議為基礎的RPC服務,將自己的wsdl文件放到UDDI中,供服務調用方封裝成本地調用
3、RESTful格式的API
全稱叫表述性狀態轉移,基于HTTP協議的請求通過方法類型(GET、POST等)確定請求動作,數據以JSON文本格式傳輸
4、二進制類RPC協議
將數據壓縮成二進制,減少帶寬占用
Hessian2
Dubbo中默認的序列化協議
服務調用方根據Hessian2協議的規則,只記錄類文件中類名、方法名、字段等信息的名稱和字符長度等,壓縮成二進制作為自描述,同時將參數的長度和值壓縮成二進制,與自描述一同傳輸
服務提供方通過Hessian2協議的統一規則,對接受的二進制流進行解析,獲得真正的請求
5、跨語言類RPC協議
不同的需求使用不同的編程語言,主要為了適應跨語言調用
Protocal Buffers
使用TLV(Tag,Length,Value)的存儲辦法將請求數據壓縮
- Tag:根據類文件中字段的唯一標識field_num,和字段類型的標識wire_type生成
- Length:字段值的長度
- Value:字段值
Envoy
一種動態的負載均衡器,有4個基礎配置:
- listener:監聽端口接入請求
- endpoint:目標IP地址和端口,請求轉發的目的地
- cluster:一組相同的endpoint,可以通過輪詢進行負載和健康檢查
- route:通過route規則,跳到不同版本的cluster,或根據條件進行流量分配
總結
以上是生活随笔為你收集整理的网络协议——RPC协议(计算机网络的基本概念)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能入门的学习
- 下一篇: maven-surefire-plugi