gRPC(じーあるぴーしー)
最終更新:2026/4/25
gRPCは、Googleが開発したオープンソースのリモートプロシージャコール(RPC)フレームワークである。
別名・同義語 リモートプロシージャコールRPCフレームワーク
ポイント
Protocol Buffersをインターフェース定義言語として使用し、HTTP/2をトランスポート層として利用することで、効率的な通信を実現する。
gRPCとは
gRPC(gRPC Remote Procedure Calls)は、Googleによって開発された、高性能でオープンソースなRPCフレームワークです。クライアント・サーバー間の効率的な通信を可能にするように設計されており、マイクロサービスアーキテクチャにおいて特に有用です。
歴史
gRPCは、2015年にGoogleによって公開されました。当初はGoogle内部で使用されていましたが、その効率性と柔軟性から、広く採用されるようになりました。
技術的な特徴
- Protocol Buffers: gRPCは、インターフェース定義言語としてProtocol Buffers(protobuf)を使用します。protobufは、データ構造を効率的にシリアライズするための言語であり、gRPCのパフォーマンス向上に貢献しています。
- HTTP/2: gRPCは、トランスポート層としてHTTP/2を使用します。HTTP/2は、多重化、ヘッダー圧縮、サーバープッシュなどの機能を提供し、通信の効率を高めます。
- 多言語サポート: gRPCは、C++, Java, Python, Go, Ruby, C#, Node.js, Android Java, PHPなど、多くのプログラミング言語をサポートしています。
- ストリーミング: gRPCは、単一のリクエスト/レスポンスだけでなく、クライアント側ストリーミング、サーバー側ストリーミング、双方向ストリーミングをサポートしています。
gRPCの利点
- 高性能: Protocol BuffersとHTTP/2の組み合わせにより、高いパフォーマンスを実現します。
- 効率的な通信: バイナリ形式でのデータ交換により、テキストベースのプロトコルよりも効率的な通信が可能です。
- 多言語サポート: 多くのプログラミング言語をサポートしているため、異なる言語で記述されたサービス間の連携が容易です。
- コード生成: protobuf定義ファイルから、クライアントおよびサーバーのコードを自動生成できます。
gRPCの利用例
- マイクロサービス間の通信
- モバイルアプリケーションとバックエンドサーバー間の通信
- リアルタイムアプリケーション
関連技術
- Protocol Buffers
- HTTP/2
- REST
- マイクロサービス