面試必備:gRPC 有那四種服務類型?

簡述:

分別是:簡單 RPC(Unary RPC)、服務端流式 RPC (Server streaming RPC)、客戶端流式 RPC (Client streaming RPC)、雙向流式 RPC(Bi-directional streaming RPC)

概念:

gRPC 是一個高性能、開源和通用的 RPC 框架,面向移動和 HTTP/2 設計。gRPC 基於 HTTP/2 標準設計,帶來諸如雙向流、流控、頭部壓縮、單 TCP 連接上的多複用請求等特。這些特性使得其在移動設備上表現更好,更省電和節省空間佔用。gRPC 一開始由 google 開發,是一款語言中立、平臺中立、開源的遠程過程調用 (RPC) 系統。

特徵:

服務類型 特點

簡單 RPC 一般的 rpc 調用,傳入一個請求對象,返回一個返回對象 服務端流式 RPC 傳入一個請求對象,服務端可以返回多個結果對象 客戶端流式 RPC 客戶端傳入多個請求對象,服務端返回一個結果對象 雙向流式 RPC 結合客戶端流式 RPC 和服務端流式 RPC,可以傳入多個請求對象,返回多個結果對象

使用場景:

需要對接口進行嚴格約束的情況,比如我們提供了一個公共的服務,很多人,甚至公司外部的人也可以訪問這個服務,這時對於接口我們希望有更加嚴格的約束,我們不希望客戶端給我們傳遞任意的數據,尤其是考慮到安全性的因素,我們通常需要對接口進行更加嚴格的約束。這時 gRPC 就可以通過 protobuf 來提供嚴格的接口約束。

對於性能有更高的要求時。有時我們的服務需要傳遞大量的數據,而又希望不影響我們的性能,這個時候也可以考慮 gRPC 服務,因爲通過 protobuf 我們可以將數據壓縮編碼轉化爲二進制格式,通常傳遞的數據量要小得多,而且通過 http2 我們可以實現異步的請求,從而大大提高了通信效率。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/TVsIUuWAnxEiFrb-DeOzSg