gRPCのメモ。
|
gRPCは、protobufを利用したremote procedure call。
remote procedure callは、プログラミング言語の通常のサブルーチン呼び出しのような形でコーディングし、実際はリモートサーバーのプロシージャーを呼び出す仕組み。
gRPCでは、サーバーとの通信(データのシリアライズ)にprotobufを使用する。
gRPCを使う場合は、protobuf(protoファイル)で通信データの構造やプロシージャー名を定義し、そこから各言語(C++やJavaやRust等)のソースコードを生成する。
言語 | 例 |
---|---|
protobufによる宣言 | rpc SendInt64Pair(Int64PairRequest) returns
(Int64PairResponse); |
C++での呼び出し | Status status = stub_->SendInt64Pair(&context, request,
&response); |
Javaでの呼び出し | var response = blockingStub.sendInt64Pair(request); |
Rustでの呼び出し | let response = client.send_int64_pair(request).await?; |