gRPC

gRPC は Google が開発(かいはつ) した高性能(こうせいのう) オープンソースの RPC フレームワーク。

概要

gRPC フレームワークはクライアント・サーバーモデルのリモートプロシージャ()() しに(もと) づく。クライアントアプリケーションはサーバーアプリケーションのメソッドを直接(ちょくせつ) ()() せる。

Protocol Buffers

gRPC は Protocol Buffers を IDL とメッセージ交換(こうかん) 形式(けいしき) として使用(しよう)

syntax = "proto3";

message HelloRequest {
    string name = 1;
}

4つの通信タイプ

タイプ説明(せつめい)モード
Unary1 (たい) 11 request → 1 response
Client-side streaming() (たい) 1N requests → 1 response
Server-side streaming1 (たい) ()1 request → N responses
Bidirectional() (たい) ()双方向(そうほうこう) ストリーミング

gRPC vs REST

特性(とくせい)gRPCREST
プロトコルHTTP/2HTTP/1.1 or HTTP/2
データ形式(けいしき)Protocol BuffersJSON/XML
ストリーミングネイティブ対応(たいおう)限定的(げんていてき)
性能(せいのう)(こう)(ちゅう)

適用シナリオ

  • マイクロサービス(かん)通信(つうしん)
  • 低遅延(ていちえん)(こう) スループットシステム
  • 双方向(そうほうこう) ストリーミングアプリ

関連トピック