日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

gRPC 為什么這么快?

來源: 責編: 時間:2023-11-02 17:13:55 276觀看
導讀RPC(Remote Procedural Call, 遠程過程調用)之所以被稱為 remote,因為在微服務架構下,RPC 可以實現遠程服務之間的通信。從服務調用者的角度來看,它就像一個本地函數調用。下圖說明了 gRPC 的數據流。圖片步驟 1:客戶前端發

RPC(Remote Procedural Call, 遠程過程調用)之所以被稱為 remote,因為在微服務架構下,RPC 可以實現遠程服務之間的通信。從服務調用者的角度來看,它就像一個本地函數調用。upU28資訊網——每日最新資訊28at.com

下圖說明了 gRPC 的數據流。upU28資訊網——每日最新資訊28at.com

圖片圖片upU28資訊網——每日最新資訊28at.com

  • 步驟 1:客戶前端發出 REST 調用。請求體通常為 JSON 格式。
  • 步驟 2-4:訂單服務(gRPC 客戶端)接收 REST 調用,對其進行轉換,然后向支付服務發出 RPC 調用。gPRC 將 client stub 編碼為二進制格式,并將其發送到底層傳輸層
  • 步驟 5:gRPC 通過 HTTP2 在網絡上發送數據包。由于采用了二進制編碼和網絡優化,gRPC 據說比 JSON 快 5 倍。
  • 步驟 6 - 8:支付服務(gRPC 服務器)接收來自網絡的數據包,解碼后調用服務器應用程序。
  • 步驟 9 - 11:結果從服務器應用程序返回,經過編碼后發送到傳輸層。
  • 步驟 12 - 14:訂單服務接收數據包、解碼并將結果發送給客戶端應用程序。

和廣泛用于前后端通信的 REST 相比,gRPC 普遍用于服務間通信。并且,REST 不是一個協議,它只是一個基于 HTTP 協議的設計范式。gRPC 針對傳輸層和數據編解碼都進行了優化,使得它的效率更高。upU28資訊網——每日最新資訊28at.com

雖然 RPC 調用在微服務中被廣泛采用,神書 DDIA (Designing Data-Intensive Applications) 中列舉了一些 RPC 的局限性:upU28資訊網——每日最新資訊28at.com

  1. 本地函數調用的結果是可預測的,而 RPC 需要經過網絡傳輸,數據在中途可能因為各種原因丟失。
  2. RPC 調用有可能超時,編寫程序時需要考慮該情況。
  3. 重試一個失敗的 RPC 調用有可能造成數據重復,需要考慮冪等
  4. 由于傳輸數據時需要序列化和反序列化,RPC 在傳輸復雜對象時會不太方便。

正是因為這些原因,讓遠程調用看上去像是一個本地調用的編程思想值得商榷。開發者在使用 RPC 時需要有針對性地進行容錯處理。upU28資訊網——每日最新資訊28at.com

upU28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-16638-0.htmlgRPC 為什么這么快?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: GORM:在Go中輕松管理數據庫

下一篇: 前端快速實現快捷鍵功能,超實用!

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 斗六市| 白沙| 商丘市| 罗江县| 松潘县| 彭阳县| 江口县| 柳河县| 闽侯县| 吴堡县| 兴国县| 临潭县| 亳州市| 都江堰市| 抚顺县| 壤塘县| 托里县| 电白县| 肃北| 通河县| 杨浦区| 师宗县| 汤原县| 龙门县| 若尔盖县| 瑞金市| 濉溪县| 侯马市| 江陵县| 宁海县| 东乌| 北海市| 白城市| 织金县| 淮安市| 株洲县| 巍山| 永康市| 田阳县| 祁连县| 丽水市|