中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

RPC框架原理是什么

發布時間:2022-03-19 10:30:04 來源:億速云 閱讀:212 作者:iii 欄目:大數據

這篇文章主要講解了“RPC框架原理是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“RPC框架原理是什么”吧!

什么是 RPC ?

RPC 是一種框架或者說一種架構,主要目標就是讓遠程服務調用更簡單、透明,調用遠程就像調用本地一樣。

百度百科解釋:

RPC(Remote Procedure Call) - 遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程序之間攜帶信息數據。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網絡分布式多程序在內的應用程序更加容易。

什么情況下使用 RPC ?

如果我們開發簡單的應用,業務流程簡單、流量不大,根本用不著 RPC。

當我們的應用訪問量增加和業務增加時,發現單機已無法承受,此時可以根據不同的業務(劃分清楚業務邏輯)拆分成幾個互不關聯的應用,分別部署在不同的機器上,此時可能也不需要用到 RPC 。

隨著我們的業務越來越多,應用也越來越多,應用與應用相互關聯調用,發現有些功能已經不能簡單劃分開,此時可能就需要用到 RPC。

比如,我們開發電商系統,需要拆分出用戶服務、商品服務、優惠券服務、支付服務、訂單服務、物流服務、售后服務等等,這些服務之間都相互調用,這時內部調用最好使用 RPC ,同時每個服務都可以獨立部署,獨立上線。

也就說當我們的項目太大,需要解耦服務,擴展性強、部署靈活,這時就要用到 RPC ,主要解決了分布式系統中,服務與服務之間的調用問題。

RPC 框架原理

RPC框架原理是什么

RPC 架構主要包括三部分:

  • 服務注冊中心(Registry),負責將本地服務發布成遠程服務,管理遠程服務,提供給服務消費者使用。

  • 服務提供者(Server),提供服務接口定義與服務實現類。

  • 服務消費者(Client),通過遠程代理對象調用遠程服務。

服務提供者啟動后主動向服務注冊中心(Registry)注冊機器IP、端口以及提供的服務列表;

服務消費者啟動時向服務注冊中心(Registry)獲取服務提供方地址列表。

服務注冊中心(Registry)可實現負載均衡和故障切換。

RPC 調用過程

RPC框架原理是什么

(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 這些步驟都封裝起來。

RPC 優點

  • 跨語言(C++、PHP、Java、Python ...)

  • 協議私密,安全性較高

  • 數據傳輸效率高

  • 支持動態擴展

RPC 缺點

一個完善的 RPC框架 開發難度大,需要的專業人員比較多,對初學者難度比較大。

感謝各位的閱讀,以上就是“RPC框架原理是什么”的內容了,經過本文的學習后,相信大家對RPC框架原理是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

rpc
AI

杂多县| 加查县| 监利县| 苍南县| 固阳县| 象山县| 东乌珠穆沁旗| 夹江县| 长汀县| 沽源县| 白河县| 太仓市| 灵台县| 会同县| 永宁县| 廊坊市| 南丹县| 岐山县| 湟源县| 抚宁县| 金乡县| 海安县| 古蔺县| 彭山县| 哈尔滨市| 平远县| 化隆| 延长县| 深水埗区| 肇源县| 大名县| 泾源县| 北宁市| 民丰县| 淅川县| 神池县| 浪卡子县| 电白县| 泊头市| 通江县| 黎城县|