国产精一区二区_午夜视频99_免费白白视频_中文字幕一区免费

熱門文章> rpc基于什么協議 >

rpc基于什么協議

36氪企服點評小編
2022-01-14 18:08
2146次閱讀

| 企服解答

RPC可以基于TCP協議也可以基于HTTP協議。

rpc基于什么協議rpc基于什么協議

1、基于TCP協議的RPC調用

在Java中,可以利用Socket API實現基于TCP協議的RPC調用,由服務的調用方與服務的提供方建立Socket連接,并由服務的調用方通過Socket將需要調用的接口名稱、方法名稱和參數序列化后傳遞給服務的提供方,服務的提供方反序列化后再利用反射調用相關的方法,最后將結果返回給服務的調用方。

整個基于TCP協議的PRC調用大致如此,但是在實例應用中則會進行一系列的封裝,譬如RMI便是在TCP協議上傳遞可序列化的java對象。

2、基于HTTP協議的RPC調用

基于HTTP協議的RPC調用則更像是我們訪問網頁一樣,只是它的返回結果更加單一簡單。

其大致流程為:由服務的調用者向服務的提供者發送請求,這種請求的方式可能是GET、POST、PUT、DELETE等中的一種(服務的提供者可能會根據不同的請求方式做出不同的處理,或者某個方法只允許某種請求方式),而調用的具體方法則根據URL進行方法調用,而方法所需參數則可能是對服務調用方傳輸過去的XML數據或JSON數據解析后的結果,最后返回JOSN或XML的數據結果(這需要根據實際應用定義相關的協議)。

由于目前有很多開源的WEB服務器,如Tomcat,JBoss等,所以其實現起來更加容易(就跟做Web項目一樣)。

| 擴展閱讀

RPC(Remote Procedure Call Protocol),指遠程過程調用,一般用來實現部署在不同機器上的系統之間的方法調用,使得程序能夠像訪問本地系統資源一樣,通過網絡傳輸去訪問遠端系統資源。

它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的思想。RPC 是一種技術思想而非一種規范或協議。

RPC協議與HTTP協議的區別:

1、RPC是一種API,HTTP是一種無狀態的網絡協議。RPC可以基于HTTP協議實現,也可以直接在TCP協議上實現。

2、RPC主要是用在大型網站里面,因為大型網站里面系統繁多,業務線復雜,而且效率優勢非常重要的一塊,這個時候RPC的優勢就比較明顯了。

HTTP主要是用在中小型企業里面,業務線沒那么繁多的情況下。

3、HTTP開發方便簡單、直接。開發一個完善的RPC框架難度比較大。

4、HTTP發明的初衷是為了傳送超文本的資源,協議設計的比較復雜,參數傳遞的方式效率也不高。開源的RPC框架針對遠程調用協議上的效率會比HTTP快很多。

5、HTTP需要事先通知,修改Nginx/HAProxy配置。RPC能做到自動通知,不影響上游。

6、HTTP大部分是通過Json來實現的,字節大小和序列化耗時都比Thrift要更消耗性能。RPC,可以基于Thrift實現高效的二進制傳輸。

[免責聲明]

文章標題: rpc基于什么協議

文章內容為網站編輯整理發布,僅供學習與參考,不代表本網站贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時溝通。發送郵件至36dianping@36kr.com,我們會在3個工作日內處理。

消息通知
咨詢入駐
商務合作