gRPC (gRPC Remote Procedure Calls[2]) 是一個跨平台開源高效能遠端程序呼叫RPC)框架。

Quick Facts 開發者, 首次發布 ...
gRPC
開發者Google
首次發布2016年8月,​8年前​(2016-08
當前版本1.45.0[1](2022年3月19日,​2年前​(2022-03-19
原始碼庫 編輯維基數據鏈接
程式語言Android JavaC♯C++DartGoJavaKotlin/JVMNode.jsObjective-CPHPPythonRuby
類型遠端程序呼叫框架
許可協議Apache License 2.0
網站grpc.io
Close

gRPC最初由Google建立,它使用一個通用的RPC基礎設施Stubby來連接其資料中心內外執行的大量微服務,始於2001年。[3]2015年3月,Google決定構建下一個版本的Stubby並將其開源,於是就有了gRPC。現在除了Google之外,許多組織都在使用它來支援從微服務到計算的「最後一英里」(移動、Web和物聯網)的用例。

gRPC基於HTTP/2協定傳輸資料,使用Protocol Buffers作為介面描述語言,並提供認證(authentication)、雙向串流(bidirectional streaming)和流量控制、阻塞或非阻塞繫結以及取消和逾時(Deadlines)等功能。它為許多語言生成跨平台的客戶端和伺服器繫結。最常見的使用場景包括在微服務風格的架構中連接服務,或將行動裝置客戶端連接到後端服務。[4]

gRPC對HTTP/2的複雜使用使得在瀏覽器中無法實現gRPC客戶端,而需要使用代理。[5]

最常見的應用場景是[6]

  • 微服務框架下,多種語言服務之間的高效互動。
  • 將手機服務、瀏覽器連接至後台
  • 產生高效的客戶端庫

身分驗證(Authentication)

gRPC支援使用傳輸層安全性協定(TLS)和基於權杖的身分驗證。連接到Google服務必須使用TLS。有兩種類型的憑據:通道憑據和呼叫憑據。對於基於權杖的授權,gRPC提供了伺服器攔截器[7]和客戶端攔截器[8]

編碼(Encoding)

gRPC使用Protocol Buffers來編碼資料。Protocol buffers提供了一種序列化格式和介面描述語言[9]

測試(Testing)

用於測試gRPC實現的一些軟體工具包括Postman、ezy[10]、Insomnia和Step CI[11]

應用

許多不同的組織已經採用了gRPC,例如Uber,[12] Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Arista Networks, Cisco, Juniper Networks,[13] Spotify,[14] Zalando,[15] Dropbox,[16] 以及 作為原始開發者的Google。

開源專案 u-bmc 使用gRPC替代智慧型平台管理介面(IPMI)。[17]2019年1月8日,Dropbox宣布他們的服務導向架構(SOA)核心的RPC框架「Courier」的下一個版本將遷移到gRPC上,主要是因為它與他們現有的自訂RPC框架很好地契合。[18]

gRPC的替代方案

參見

參考文獻

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.