Message Processor への接続を再試行するように Router を構成する

Edge for Private Cloud v. 4.17.05

ヘルスチェック中に Message Processor が使用できない場合の Router レスポンスの構成

Router は、Message Processor がリクエストを処理できるかどうかを判断するために、5 秒ごとに Message Processor のヘルスチェックを行います。Message Processor が停止すると、Router は自動的にリクエストを別の Message Processor に転送します。

Router で conf_load_balancing_load.balancing.driver.nginx.server.retry プロパティを設定することで、Message Processor がダウンしたときの Router の動作を構成できます。このプロパティは、スペース区切りの値のセットを受け取ります。これには、次の値を含めることができます。

  • off: 再試行を無効にします。ルーターはリクエスト時に失敗コードを返します。
  • http_599:(デフォルト)Router が Message Processor から HTTP 599 レスポンスを受信すると、Router はリクエストを次の Message Processor に転送します。

    HTTP 599 は、Message Processor がシャットダウンされるときに生成される特別なレスポンス コードです。Message Processor は既存のすべてのリクエストを完了しようとしますが、新しいリクエストに対しては HTTP 599 を返して、次の Message Processor でリクエストを再試行するよう Router に通知します。
  • error: Message Processor との接続の確立中、Message Processor へのリクエストの受け渡し中、または Message Processor からのレスポンス ヘッダーの読み取り中にエラーが発生した場合、Router はリクエストを次の Message Processor に転送します。
  • timeout: Message Processor との接続の確立、Message Processor へのリクエストの受け渡し、Message Processor からのレスポンス ヘッダーの読み取り中にタイムアウトが発生した場合、Router はリクエストを次の Message Processor に転送します。
  • invalid_header: Message Processor が空のレスポンスまたは無効な回答を返した場合、Router はリクエストを次の Message Processor に転送します。
  • http_XXX: Message Processor が HTTP コード XXX を含むレスポンスを返した場合、Router はリクエストを次の Message Processor に転送します。

Router を構成するには:

  1. /opt/apigee/customer/application/router.properties ファイルを編集します(ファイルが存在しない場合は作成します)。
  2. 次のように conf_load_balancing_load.balancing.driver.nginx.server.retry プロパティを追加します。
    conf_load_balancing_load.balancing.driver.nginx.server.retry=http_599 error
  3. プロパティ ファイルが「apigee」ユーザーによって所有されていることを確認します。
    > chown apigee:apigee /opt/apigee/customer/application/router.properties
  4. Router を再起動します。
    > /opt/apigee/apigee-service/bin/apigee-service edge-router restart

API プロキシ リクエストの一部として Message Processor にアクセスする際の Router タイムアウトの構成

Edge Router には、API プロキシを介してリクエストを処理する一環として Message Processor へのアクセスを試行する際のタイムアウトが 57 秒に事前設定されています。このタイムアウトが期限切れになると、Router は別の Message Processor への接続を試みます(利用可能な場合)。それ以外の場合はエラーが返されます。

このタイムアウトを制御するには、次の 2 つのプロパティを使用します。

  • conf_load_balancing_load.balancing.driver.proxy.read.timeout は、1 つの 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 を構成するには:

  1. /opt/apigee/customer/application/router.properties ファイルを編集します(ファイルが存在しない場合は作成します)。
  2. 次のようにプロパティを設定します。
    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout=240
  3. プロパティ ファイルが「apigee」ユーザーによって所有されていることを確認します。
    > chown apigee:apigee /opt/apigee/customer/application/router.properties
  4. Router を再起動します。
    > /opt/apigee/apigee-service/bin/apigee-service edge-router restart