gRPC
https://scrapbox.io/files/66f2be4dbb6fd0001c57c3d5.png
https://grpc.io/
概要
Google によって 2015 年に OSS 化された RPC のためのプロトコル
特徴
データフォーマッタに Protocol Buffers を採用
バイナリ に シリアライズ することで送信データ量が減り、高速な通信を実現可能
型付けされたデータ転送が可能
Protocol Buffers からサーバサイド・クライアントサイドに必要なソースコードを自動生成できる
Protocol Buffers = IDL
通信には HTTP/2 を採用
特定の言語やプラットフォームに依存しない
公式に記載のある対応言語は以下
C# / .NET, C++, Dart, Go, Java, Kotlin, Node.js, Objective-C, PHP, Python, Ruby
適しているユースケース
マイクロサービス 間の通信
複数言語やクロスプラットフォームで構成される可能性がある
バックエンド間であれば gRPC の多くの恩恵を受けることが可能
モバイルユーザが利用するサービス
通信量が削減でき、通信容量制限に引っかかりづらくなる
通信速度が求められるケース
開発フロー(Schema first)
Protocol Buffers ファイル(proto ファイル)の作成
proto ファイル をコンパイルして、サーバ・クライアントのコードを生成
生成されたコードを用いて、実際の機能を実装