Hitachi

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


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

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

〈この項の構成〉

(1) gRPCインバウンドアダプタが使用できるOSSの機能

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

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について説明している個所を参照してください。

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

[図データ]

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

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

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

[図データ]

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

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

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

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

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

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

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