2.13.4 gRPCインバウンドアダプタの機能
gRPCインバウンドアダプタは,RPCプロトコル「gRPC」を利用するgRPCクライアントからの要求電文を受信し,gRPC受付から返される応答電文をgRPCクライアントに返信します。JCA1.5に準拠しています。
- 〈この項の構成〉
(1) gRPCインバウンドアダプタが使用できるOSSの機能
gRPCインバウンドアダプタでは,次のOSSの機能を使用できます。
-
メッセージ圧縮機能(gRPCの要求電文,応答電文の双方でメッセージ圧縮機能をサポート)
-
メタデータの送受信(gRPCの要求電文の受信,応答電文の送信,双方でメタデータをサポート)
-
SSL/TLS
-
フローコントロール
-
キープアライブ
-
HTTP/2 Rapid Reset Attack対策
OSSの機能の一部はgRPCインバウンドアダプタのRAR属性ファイルで設定できます。設定方法については,マニュアル「サービスプラットフォーム システム構築・運用ガイド」の「3.1.2 実行環境に必要なソフトウェアを設定する」を参照し,gRPCインバウンドアダプタのRAR属性ファイルの説明を確認してください。
(2) サポートするgRPC通信種別
gRPCインバウンドアダプタでは,gRPC通信種別の「Simple-RPC(Unary)」をサポートしています。「Simple-RPC(Unary)」は,gRPCクライアントからの1つのリクエストに対して,gRPCサーバが1つのレスポンスを返す通信種別です。
(3) gRPCインバウンドアダプタの機能一覧
gRPCインバウンドアダプタの機能を次に示します。
|
機能 |
説明 |
|---|---|
|
運用機能 |
gRPCインバウンドアダプタの開始・停止など |
|
gRPCサーバ機能 |
gRPCサーバの開始・停止など※ |
|
ログ出力機能 |
gRPCインバウンドアダプタに関するログの出力※ |
- 注※
-
設定方法については,マニュアル「サービスプラットフォーム システム構築・運用ガイド」の「3.1.2 実行環境に必要なソフトウェアを設定する」を参照し,gRPCインバウンドアダプタのRAR属性ファイルの説明を確認してください。
(4) gRPCインバウンドアダプタの流量制御
gRPCインバウンドアダプタでは,gRPCクライアントからのリクエストを受信した場合,スレッドプールからスレッドを割り当ててリクエスト処理を実行します。スレッドプールのスレッド数を指定し,同時に実行できるスレッドを制御することで,パフォーマンスの低下やリソースの枯渇を抑制できます。
RAR属性ファイルのthreadPoolSize(リクエストを処理するスレッドプールのスレッド数)には,gRPCクライアントの同時実行数をスレッド数として設定します。
threadPoolSizeについては,マニュアル「サービスプラットフォーム システム構築・運用ガイド」の「3.1.2 実行環境に必要なソフトウェアを設定する」のthreadPoolSizeについて説明している個所を参照してください。
|
|
gRPCインバウンドアダプタでは,スレッドプールを使用し,一度作成したスレッドを再利用して処理を実行します。スレッドプール内のスレッド数は,属性ファイルから設定できます。
タスクを処理するスレッドプールのスレッド数に10を設定した場合の遷移の例を次の図に示します。
|
|
この例では,属性ファイルに次のように設定しています。
threadPoolSize=10
-
gRPCインバウンドアダプタ起動直後は,スレッドは生成されません。
-
7つのリクエストが同時に実行された場合,7つのスレッドが作成され,実行中スレッドとなります。
-
リクエスト処理の実行が完了した場合,実行が完了したスレッドはアイドルスレッドとなります。リクエスト処理が完了してもスレッドは破棄されません。
-
スレッドプールのスレッド数(threadPoolSize)を超えるリクエストが同時に実行された場合,threadPoolSizeに指定した値を超えた分のリクエスト処理要求は,実行待ちキューにタスクとして追加され,処理を待機します。実行中のスレッドの処理が終了し,スレッドに空きが発生するとキューからタスクが取り出されます。
(5) gRPCインバウンドアダプタ使用時の注意事項
gRPCインバウンドアダプタ使用時の注意事項を次に示します。
-
gRPCインバウンドアダプタがサポートするgRPC電文フォーマットの仕様はproto3以上です。proto2以前の電文フォーマットは使用できません。
-
同一完全修飾サービス名を持つ複数のgRPCサービスは登録できません。同一完全修飾サービス名を持つgRPCサービスは,先に登録されたサービスだけが有効となり,それ以外は無効となります。