您好,登錄后才能下訂單哦!
這篇文章主要講解了“RPC框架原理是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“RPC框架原理是什么”吧!
RPC 是一種框架或者說一種架構,主要目標就是讓遠程服務調用更簡單、透明,調用遠程就像調用本地一樣。
百度百科解釋:
RPC(Remote Procedure Call) - 遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程序之間攜帶信息數據。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網絡分布式多程序在內的應用程序更加容易。
如果我們開發簡單的應用,業務流程簡單、流量不大,根本用不著 RPC。
當我們的應用訪問量增加和業務增加時,發現單機已無法承受,此時可以根據不同的業務(劃分清楚業務邏輯)拆分成幾個互不關聯的應用,分別部署在不同的機器上,此時可能也不需要用到 RPC 。
隨著我們的業務越來越多,應用也越來越多,應用與應用相互關聯調用,發現有些功能已經不能簡單劃分開,此時可能就需要用到 RPC。
比如,我們開發電商系統,需要拆分出用戶服務、商品服務、優惠券服務、支付服務、訂單服務、物流服務、售后服務等等,這些服務之間都相互調用,這時內部調用最好使用 RPC ,同時每個服務都可以獨立部署,獨立上線。
也就說當我們的項目太大,需要解耦服務,擴展性強、部署靈活,這時就要用到 RPC ,主要解決了分布式系統中,服務與服務之間的調用問題。
RPC 架構主要包括三部分:
服務注冊中心(Registry),負責將本地服務發布成遠程服務,管理遠程服務,提供給服務消費者使用。
服務提供者(Server),提供服務接口定義與服務實現類。
服務消費者(Client),通過遠程代理對象調用遠程服務。
服務提供者啟動后主動向服務注冊中心(Registry)注冊機器IP、端口以及提供的服務列表;
服務消費者啟動時向服務注冊中心(Registry)獲取服務提供方地址列表。
服務注冊中心(Registry)可實現負載均衡和故障切換。
(1) 客戶端(client)以本地調用方式調用服務;
(2) 客戶端存根(client stub)接收到調用后,負責將方法、參數等組裝成能夠進行網絡傳輸的消息體(將消息體對象序列化為二進制);
(3) 客戶端通過 sockets 將消息發送到服務端;
(4) 服務端存根(server stub)收到消息后進行解碼(將消息對象反序列化);
(5) 服務端存根(server stub)根據解碼結果調用本地的服務;
(6) 本地服務執行并將結果返回給服務端存根(server stub);
(7) 服務端存根(server stub)將返回結果打包成消息(將結果消息對象序列化);
(8) 服務端(server)通過 sockets 將消息發送到客戶端;
(9) 客戶端存根(client stub)接收到結果消息,并進行解碼(將結果消息發序列化);
(10) 客戶端(client)得到最終結果。
RPC 就是要把 2、3、4、7、8、9 這些步驟都封裝起來。
跨語言(C++、PHP、Java、Python ...)
協議私密,安全性較高
數據傳輸效率高
支持動態擴展
一個完善的 RPC框架 開發難度大,需要的專業人員比較多,對初學者難度比較大。
感謝各位的閱讀,以上就是“RPC框架原理是什么”的內容了,經過本文的學習后,相信大家對RPC框架原理是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。