理解rpc協議,為什么使用rpc


RPC 全稱 Remote Procedure Call——遠程過程調用。在學校學編程,我們寫一個函數都是在本地調用就行了。但是在互聯網公司,服務都是部署在不同服務器上的分布式系統,如何調用呢?


RPC技術簡單說就是為了解決遠程調用服務的一種技術,使得調用者像調用本地服務一樣方便透明。


下圖是客戶端調用遠端服務的過程:

1)客戶端client發起服務調用請求。

2)client stub 可以理解成一個代理,會將調用方法、參數按照一定格式進行封裝,通過服務提供的地址,發起網絡請求。

3)消息通過網絡傳輸到服務端。

4)server stub接受來自socket的消息

5)server stub將消息進行解包、告訴服務端調用的哪個服務,參數是什么

6)結果返回給server stub

7)sever stub把結果進行打包交給socket

8)socket通過網絡傳輸消息

9)client slub 從socket拿到消息

10)client stub解包消息將結果返回給client。

一個RPC框架就是把步驟2到9都封裝起來。

為什么需要RPC

1、首先要明確一點:RPC可以用HTTP協議實現,並且用HTTP是建立在 TCP 之上最廣泛使用的 RPC,但是互聯網公司往往用自己的私有協議,比如鵝廠的JCE協議,私有協議不具備通用性為什么還要用呢?因為相比於HTTP協議,RPC采用二進制字節碼傳輸,更加高效也更加安全。

2、現在業界提倡“微服務“的概念,而服務之間通信目前有兩種方式,RPC就是其中一種。RPC可以保證不同服務之間的互相調用。即使是跨語言跨平台也不是問題,讓構建分布式系統更加容易。

3、RPC框架都會有服務降級、流量控制的功能,保證服務的高可用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM