gRPC
じーあーるぴーしー
gRPC
一言でいうと
サービス間通信を高速・型安全に行うために設計された、Google発のRPCフレームワークのこと。
詳しい意味
gRPC は、Google が開発したオープンソースのRPC(Remote Procedure Call)フレームワークです。HTTP/2 上で動作し、データはバイナリ形式(Protocol Buffers)でやりとりします。RESTやGraphQL(人間に読める JSON)に比べて、データサイズが小さく・通信が速く・型が厳密に決まるのが特徴。サービス間通信(マイクロサービスのバックエンド間)で広く使われ、双方向ストリーミングもサポート。一方、ブラウザから直接呼び出すのは難しく、フロントエンド向けには REST/GraphQL の方が向きます。「サーバー間は gRPC、フロントとは REST/GraphQL」という併用パターンが定番です。
何に使うか
マイクロサービス間の高速・低遅延通信。サーバー間のデータ転送量が大きいシステム。複数言語で書かれたサービス間でスキーマを統一したいとき。
どんな時に出るか
「gRPC で接続」「Proto buffers のスキーマ更新」「内部はgRPC、外部はREST」といった場面で登場します。
具体例
- マイクロサービス間は gRPC、フロントエンドからは REST という二段構成にした。
- Proto ファイルでスキーマを共有することで、サーバーとクライアントの型ズレを防いでいる。
別名・略称
grpc(じーあーるぴーしー)Protocol Buffers(ぷろとこるばっふぁーず)protobuf(ぷろとばふ)
初心者向けメモ
業界内で使う「専用FAX回線」のようなイメージです。同業者間(サーバー間)では「決まったフォーマット(Proto)」「専用回線(HTTP/2)」で速くデータをやりとりできる。一般客(ブラウザ)からは普通の郵便(REST)の方が使いやすい、という棲み分けです。