SPONSORED

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
  • マイクロサービス

SPONSORED