什么是RPC
RPC 全稱 Remote Procedure Call——遠程過程調用。在學校學編程,我們寫一個函數(shù)都是在本地調用就行了。但是在互聯(lián)網(wǎng)公司,服務都是部署在不同服務器上的分布式系統(tǒng),如何調用呢?
RPC技術簡單說就是為了解決遠程調用服務的一種技術,使得調用者像調用本地服務一樣方便透明。
下圖是客戶端調用遠端服務的過程:
1)客戶端client發(fā)起服務調用請求。
2)client stub 可以理解成一個代理,會將調用方法、參數(shù)按照一定格式進行封裝,通過服務提供的地址,發(fā)起網(wǎng)絡請求。
3)消息通過網(wǎng)絡傳輸?shù)椒斩恕?/p>
4)server stub接受來自socket的消息
5)server stub將消息進行解包、告訴服務端調用的哪個服務,參數(shù)是什么
6)結果返回給server stub
7)sever stub把結果進行打包交給socket
8)socket通過網(wǎng)絡傳輸消息
9)client slub 從socket拿到消息
10)client stub解包消息將結果返回給client。
一個RPC框架就是把步驟2到9都封裝起來。
為什么需要RPC
1、首先要明確一點:RPC可以用HTTP協(xié)議實現(xiàn),并且用HTTP是建立在 TCP 之上最廣泛使用的 RPC,但是互聯(lián)網(wǎng)公司往往用自己的私有協(xié)議,比如鵝廠的JCE協(xié)議,私有協(xié)議不具備通用性為什么還要用呢?因為相比于HTTP協(xié)議,RPC采用二進制字節(jié)碼傳輸,更加高效也更加安全。
2、現(xiàn)在業(yè)界提倡“微服務“的概念,而服務之間通信目前有兩種方式,RPC就是其中一種。RPC可以保證不同服務之間的互相調用。即使是跨語言跨平臺也不是問題,讓構建分布式系統(tǒng)更加容易。
3、RPC框架都會有服務降級、流量控制的功能,保證服務的高可用。
-
互聯(lián)網(wǎng)
+關注
關注
54文章
11239瀏覽量
105907 -
服務器
+關注
關注
13文章
9730瀏覽量
87469 -
RPC
+關注
關注
0文章
111瀏覽量
11828
原文標題:RPC協(xié)議了解一下
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
HarmonyOS跨進程通信—IPC與RPC通信開發(fā)

RPC的結構原理是什么?
直連設備怎么rpc雙向控制
什么是RPC
為什么需要RPC接口
RPC接口和HTTP接口的區(qū)別與聯(lián)系

什么是HTTP協(xié)議?什么是RPC協(xié)議?二者如何選擇使用?

RPC 和 REST 區(qū)別是什么

鴻蒙開發(fā)通信與連接:ohos.rpc RPC通信

Dubbo源碼淺析(一)—RPC框架與Dubbo

評論