gRPCのrpcタイプ
2334 ワード
gRPCのrpcタイプ
rest apiはリクエスト/応答を有する.これとは異なり、gRPCは、複数のリクエスト/応答モデルを提供する.これは、gRPCがhttp/2に基づいてストリームをサポートし、複数のデータを1つの接続に送信できるためである.
https://docs.microsoft.com/ko-kr/aspnet/core/grpc/services?view=aspnetcore-6.0
syntax = "proto3";
service ExampleService {
// Unary
rpc UnaryCall (ExampleRequest) returns (ExampleResponse);
// Server streaming
rpc StreamingFromServer (ExampleRequest) returns (stream ExampleResponse);
// Client streaming
rpc StreamingFromClient (stream ExampleRequest) returns (ExampleResponse);
// Bi-directional streaming
rpc StreamingBothWays (stream ExampleRequest) returns (stream ExampleResponse);
}
サービスがメッセージをどのように送信および受信するかは、定義されたメソッドフォーマットに依存します.stream
ファイルでは、stream
キーワードを使用してストリーム呼び出しを指定します.streamは、コールのリクエストメッセージ、レスポンスメッセージ、または2つのメッセージを配置することができる.
クライアントからサーバへの単一のリクエスト、サーバは単一の応答
rpc xxx(yyyRequest) returns (zzzResponse);
Server Streaming RPCクライアントからサーバへの単一のリクエスト.サーバは連続的なストリーム応答です.
クライアントは、処理が完了するまでストリームデータを受信します.
rpc xxx(yyyRequest) returns (stream zzzResponse);
Client Streaming RPCクライアントからサーバへの連続ストリーム要求、サーバは単一応答
サーバは、処理が完了するまでストリームデータを受信します.
受信中にストリームをキャンセルすることで、クライアント・メッセージを事前に停止できます.
rpc xxx(stream yyyRequest) returns (zzzResponse);
Bidirectional Streaming RPCクライアントとサーバは、互いに処理が完了するまで、独立したストリームを使用して連続したストリームを伝達します.
rpc xxx(stream yyyRequest) returns (stream zzzResponse);
Reference
この問題について(gRPCのrpcタイプ), 我々は、より多くの情報をここで見つけました https://velog.io/@s00ny0ung/gRPC의-rpc-종류テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol