热门问题
时间线
聊天
视角
gRPC
来自维基百科,自由的百科全书
Remove ads
gRPC (gRPC Remote Procedure Calls[2]) 是一個跨平台的開源高性能遠程過程調用(RPC)框架。
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]:
- 微服務框架下,多種語言服務之間的高效交互。
- 將手機服務、瀏覽器連接至後台
- 產生高效的客戶端庫
Remove ads
身份驗證(Authentication)
gRPC支持使用傳輸層安全性協議(TLS)和基於令牌的身份驗證。連接到Google服務必須使用TLS。有兩種類型的憑據:通道憑據和調用憑據。對於基於令牌的授權,gRPC提供了服務器攔截器[7]和客戶端攔截器[8]。
編碼(Encoding)
gRPC使用Protocol Buffers來編碼數據。Protocol buffers提供了一種序列化格式和接口描述語言。[9]
測試(Testing)
應用
許多不同的組織已經採用了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的替代方案
- Cap'n Proto
- Apache Thrift
- Apache Avro
- JSON-RPC
- XML-RPC
參見
- 數據序列化格式的比較
參考文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads