Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 解説


2.13.4 gRPCインバウンドアダプタの機能

gRPCインバウンドアダプタは,RPCプロトコル「gRPC」を利用するgRPCクライアントからの要求電文を受信し,gRPC受付から返される応答電文をgRPCクライアントに返信します。JCA1.5に準拠しています。

gRPCインバウンドアダプタでは,次のOSSの機能を使用できます。

〈この項の構成〉

(1) サポートするgRPC通信種別

gRPCインバウンドアダプタでは,gRPC通信種別の「Simple-RPC(Unary)」をサポートしています。「Simple-RPC(Unary)」は,gRPCクライアントからの1つのリクエストに対して,gRPCサーバが1つのレスポンスを返す通信種別です。

(2) gRPCインバウンドアダプタの流量制御

gRPCインバウンドアダプタでは,gRPCクライアントからのリクエストを受信した場合,スレッドプールからスレッドを割り当ててリクエスト処理を実行します。スレッドプールのスレッド数を指定し,同時に実行できるスレッドを制御することで,パフォーマンスの低下やリソースの枯渇を抑制できます。

threadPoolSize(リクエストを処理するスレッドプールのスレッド数)には,gRPCクライアントの同時実行数をスレッド数として設定します。

threadPoolSizeについては,マニュアル「サービスプラットフォーム システム構築・運用ガイド」の「3.1.2 実行環境に必要なソフトウェアを設定する」のthreadPoolSizeについて説明している個所を参照してください。

図2‒120 gRPCインバウンドアダプタの流量制御

[図データ]

gRPCインバウンドアダプタでは,スレッドプールを使用し,一度作成したスレッドを再利用して処理を実行します。スレッドプール内のスレッド数は,属性ファイルから設定できます。

タスクを処理するスレッドプールのスレッド数に10を設定した場合の遷移の例を次の図に示します。

図2‒121 gRPCインバウンドアダプタのスレッド数の遷移の例

[図データ]

この例では,属性ファイルに次のように設定しています。

threadPoolSize=10
  1. gRPCインバウンドアダプタ起動直後は,スレッドは生成されません。

  2. 7つのリクエストが同時に実行された場合,7つのスレッドが作成され,実行中スレッドとなります。

  3. リクエスト処理の実行が完了した場合,実行が完了したスレッドはアイドルスレッドとなります。リクエスト処理が完了してもスレッドは破棄されません。

  4. スレッドプールのスレッド数(threadPoolSize)を超えるリクエストが同時に実行された場合,threadPoolSizeに指定した値を超えた分のリクエスト処理要求は,実行待ちキューにタスクとして追加され,処理を待機します。実行中のスレッドの処理が終了し,スレッドに空きが発生するとキューからタスクが取り出されます。

(3) gRPCインバウンドアダプタ使用時の注意事項

gRPCインバウンドアダプタ使用時の注意事項を次に示します。