gRPC

2019-04-10

gRPC について勉強したメモ

情報源

公式

二次情報

Protocol Buffers

Unity 関連

関連技術 : MagicOnion

概要

  • gRPC とは、HTTP/2 上で RPC を行う規格。 Google が作った
  • Protocol Buffers という IDL を書いて Server / Client のシリアライザのコードを生成する仕組みが用意されている

4 種類の通信方式

gRPC では 4 種類の通信方式(service method)を定義できる。

方式 内容 用途 備考
Unary RPCs 見慣れた 1 Request - 1 Response の形式。
関数呼び出しのように扱えてシンプル
一般的なサービス unary は「単項の」という意味
Server streaming RPCs 1 Request に対し Server が複数 Response を返す サーバープッシュ型の機能 Server が最後に送信完了の信号を送る
Client streaming RPCs 複数 Request 後に Server が 1 Response を返す データのアップロードなど Server は Client の送信完了を待って Response を返す
Bidirectional streaming RPCs 双方向ストリーム通信。
それぞれのストリームは独立していて任意の順序でやり取りが可能
チャットなどのリアルタイム通信 Duplex streaming とも呼ばれる。
各ストリームの送信順序は保証される