Edge for Private Cloud バージョン 4.17.09
ヘルスチェックで Message Processor が使用できない場合の Router レスポンスを構成する
Router は 5 秒ごとに Message Processor のヘルスチェックを行い、Message Processor がリクエストを処理できるかどうか確認します。Message Processor が停止すると、Router は自動的にリクエストを別の Message Processor に転送します。
Router に conf_load_balancing_load.balancing.driver.nginx.server.retry プロパティを設定すると、Message Processor が停止したときに Router がどう対応するかを構成できます。このプロパティは、スペースで区切られた一連の値を受け取ります。
- off: 再試行を無効にすると、Router はリクエストに対してエラーコードを返します。
- http_599: (デフォルト)Router が Message Processor から HTTP 599 レスポンスを受信すると、Router は次回の Message Processor にリクエストを転送します。
HTTP 599 は、Message Processor のシャットダウン時に生成される特別なレスポンス コードです。Message Processor は既存のリクエストをすべて完了しようとしますが、新しいリクエストがある場合は HTTP 599 で応答し、次の Message Processor でリクエストを再試行するよう Router に通知します。 - error: Message Processor との接続を確立中、リクエストの受け渡し中、またはレスポンス ヘッダーからの読み取り中にエラーが発生した場合、Router はリクエストを次の Message Processor に転送します。
- timeout: Message Processor との接続を確立中、リクエストの受け渡し中、またはレスポンス ヘッダーの読み取り中にタイムアウトが発生した場合、Router はリクエストを次の Message Processor に転送します。
- invalid_header: Message Processor が空または無効なレスポンスを返した場合、Router はリクエストを次の Message Processor に転送します。
- http_XXX: Message Processor が HTTP コード XXX のレスポンスを返した場合、Router はリクエストを次の Message Processor に転送します。
Router を構成するには:
- /opt/apigee/customer/application/router.properties ファイルを編集します(このファイルが存在しない場合は作成します)。
- 次のように conf_load_balancing_load.balancing.driver.nginx.server.retry プロパティを追加します。
conf_load_balancing_load.balancing.driver.nginx.server.retry=http_599 error - プロパティ ファイルの所有者を「apigee」ユーザーにします。
> chown apigee:apigee /opt/apigee/customer/application/router.properties - Router を再起動します。
> /opt/apigee/apigee-service/bin/apigee-service edge-router restart
API プロキシ リクエストの一部として Message Processor にアクセスするときの Router のタイムアウトの構成
Edge Router では、API プロキシを介してリクエストを処理する際に Message Processor にアクセスしようとしたときに、57 秒のタイムアウトが事前に設定されています。このタイムアウト時間が経過すると、別の Message Processor が使用可能な場合、Router は接続を試みます。それ以外の場合はエラーが返されます。
このタイムアウトを制御するには、次の 2 つのプロパティを使用します。
- conf_load_balancing_load.balancing.driver.proxy.read.timeout には、単一の Message Processor の待機時間を秒単位で指定します。デフォルト値は 57 秒です。
- conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout は、Edge に複数の Message Processor がある場合に、すべての Message Processor の合計待機時間を秒単位で指定します。conf_load_balancing_load.balancing.driver.proxy.read.timeout の現在の値(57 秒)のデフォルト値になります。
Router を構成するには:
- /opt/apigee/customer/application/router.properties ファイルを編集します(このファイルが存在しない場合は作成します)。
- 次のようにプロパティを設定します。
conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout=240 - プロパティ ファイルの所有者を「apigee」ユーザーにします。
> chown apigee:apigee /opt/apigee/customer/application/router.properties - Router を再起動します。
> /opt/apigee/apigee-service/bin/apigee-service edge-router restart