Message Processor の keep-alive タイムアウトを構成する

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご覧ください。

このドキュメントでは、Apigee Edge Message Processor の keep-alive タイムアウトを構成する方法について説明します。

Message Processor のキープアライブ タイムアウトを使用すると、1 つの TCP 接続でリクエストとレスポンスのペアごとに新しい接続を開くのではなく、バックエンド サーバーとの間で複数の HTTP リクエスト / レスポンスを送受信できます。

Message Processor の keep-alive タイムアウト プロパティのデフォルト値は 60 秒です。このタイムアウト時間は、ターゲット エンドポイント構成と API プロキシの ServiceCallout ポリシーで構成されたバックエンド サーバーに適用されます。

Message Processor のキープアライブ タイムアウトは、必要に応じてデフォルト値の 60 秒から増減できます。次の方法で構成できます。

  • API プロキシの場合:
    • ターゲット エンドポイント
    • ServiceCallout ポリシー内
  • Message Processor の場合

Message Processor のキープアライブ タイムアウトは、次のプロパティによって制御されます。

プロパティ名 ロケーション 説明
keepalive.timeout.millis API プロキシ:
  • ターゲット エンドポイント
  • ServiceCallout ポリシー

これは、Message Processor がリクエスト/レスポンスのペアごとに新しい接続を開くのではなく、1 つの TCP 接続で複数の HTTP リクエスト/レスポンスを送受信できる最大のアイドル時間です。

デフォルトでは、このプロパティは Message Processor の HTTPClient.keepalive.timeout.millis プロパティに設定された値を使用します。デフォルト値は 60 秒です。

このプロパティがターゲット エンドポイントで使用されているターゲット サーバーの新しいタイムアウト値または特定の API プロキシの ServiceCallout ポリシーで変更されている場合、その特定のターゲット サーバーの keep-alive 時間のみが影響を受けます。

HTTPClient.keepalive.timeout.millis Message Processor

これは、Message Processor がリクエスト/レスポンスのペアごとに新しい接続を開くのではなく、1 つの TCP 接続で複数の HTTP リクエスト/レスポンスを送受信できる最大のアイドル時間です。

このプロパティは、Message Processor で実行されるすべての API プロキシで使用されます。

このプロパティのデフォルト値は 60 秒です。

このプロパティは、後述の Message Processor の keep-alive タイムアウトを構成するの説明に従って変更できます。または、API プロキシレベルで keepalive.timeout.millis プロパティを設定することで、この値を上書きできます。

始める前に

このドキュメントの手順を使用する前に、次のトピックを理解しておいてください。

API プロキシでのキープアライブ タイムアウトの構成

キープアライブのタイムアウトは、API プロキシの次の場所で構成できます。

  • ターゲット エンドポイント
  • ServiceCallout ポリシー

API プロキシのターゲット エンドポイントでのキープアライブ タイムアウトの構成

このセクションでは、API プロキシのターゲット エンドポイントで keep-alive タイムアウトを構成する方法について説明します。キープアライブのタイムアウトは、プロパティ keepalive.timeout.millis を使って構成できます。これは、キープアライブのタイムアウト値をミリ秒単位で表します。

  1. Edge UI で、新しいキープアライブ タイムアウト値を構成する特定の API プロキシを選択します。
  2. 変更するターゲット エンドポイントを選択します。
  3. TargetEndpoint 構成の <HTTPTargetConnection> 要素の下に、適切な値を指定してプロパティ keepalive.timeout.millis を追加します。

    たとえば、キープアライブのタイムアウトを 30 秒に変更するには、次のコードブロックを追加します。

    <Properties>
      <Property name="keepalive.timeout.millis">30000</Property>
    </Properties>
    

    keepalive.timeout.millis プロパティはミリ秒単位であるため、30 秒の値は 30000 になります。

    次の例は、API プロキシのターゲット エンドポイント構成でキープアライブ タイムアウトを構成する方法を示しています。

    バックエンド サーバーの URL を使用したターゲット エンドポイント構成の例

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="keepalive.timeout.millis">30000</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>
    

    ターゲット サーバーを使用したターゲット エンドポイント構成の例

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="keepalive.timeout.millis">30000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
    
  4. API プロキシに加えた変更を保存します。

API プロキシの Service コールアウト ポリシーで keep-alive タイムアウトを構成する

このセクションでは、API プロキシの ServiceCallout ポリシーでキープアライブ タイムアウトを構成する方法について説明します。キープアライブのタイムアウトは、キープアライブのタイムアウト値をミリ秒単位で表した the keepalive.timeout.millis プロパティを使用して構成できます。

keepalive.timeout.millis ポリシーを使用して、ServiceCallout ポリシーでキープアライブ タイムアウトを構成するには:

  1. Edge UI で、ServiceCallout ポリシーの新しい keep-alive タイムアウト値を構成する特定の API プロキシを選択します。
  2. 変更する ServiceCallout ポリシーを選択します。
  3. TargetEndpoint 構成の <HTTPTargetConnection> 要素の下に、プロパティ keepalive.timeout.millis を適切な値で追加します。

    たとえば、キープアライブのタイムアウトを 30 秒に変更するには、次のコードブロックを追加します。

    <Properties>
      <Property name="keepalive.timeout.millis">30000</Property>
    </Properties>
    

    keepalive.timeout.millis プロパティはミリ秒単位であるため、30 秒の値は 30000 になります。

    次の例は、API プロキシの ServiceCallout ポリシーでキープアライブ タイムアウトを構成する方法を示しています。

    バックエンド サーバーの URL を使用した Service コールアウト ポリシーの構成例

    <ServiceCallout name="Service-Callout-1">
      <DisplayName>Service Callout-1</DisplayName>
      <HTTPTargetConnection>
        <Properties>
          <Property name="keepalive.timeout.millis">30000</Property>
        </Properties>
        <URL>https://mocktarget.apigee.net/json</URL>
      </HTTPTargetConnection>
    </ServiceCallout>
    

    ターゲット サーバーを使用した Service コールアウト ポリシーの構成例

    <ServiceCallout enabled="true" name="Service-Callout-1">
      <DisplayName>Service Callout-1</DisplayName>
      <Response>calloutResponse</Response>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="keepalive.timeout.millis">30000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </ServiceCallout>
    
  4. API プロキシに加えた変更を保存します。

Message Processor の keep-alive タイムアウトを構成する

このセクションでは、Message Processor のキープアライブ タイムアウトを構成する方法について説明します。キープアライブのタイムアウトは、HTTPClient.keepalive.timeout.millis プロパティを使用して構成できます。このプロパティは、Message Processor のキープアライブ タイムアウト値のミリ秒単位を表します。このプロパティは Message Processor でコメントアウトされるため、 Edge の構成方法 現在コメントアウトされているトークンのセクションで説明されている特別な構文 conf/http.properties+HTTPClient.keepalive.timeout.millis を使用する必要があります。

Message Processor でキープアライブ タイムアウトを構成するには、次のようにします。

  1. Message Processor マシンで、エディタで次のファイルを開きます。まだ存在しない場合は、作成します。
    /opt/apigee/customer/application/message-processor.properties
    

    たとえば、vi を使用してファイルを開くには、次のように入力します。

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. プロパティ ファイルに次の形式の行を追加し、TIME_IN_MILLISECONDS の値を置き換えます。
    conf/http.properties+HTTPClient.keepalive.timeout.millis=TIME_IN_MILLISECONDS
    

    たとえば、Message Processor の keep-alive タイムアウトを 30 秒に変更するには、次の行を追加します。

    conf/http.properties+HTTPClient.keepalive.timeout.millis=30000
    
  3. 変更を保存します。
  4. 次のように、apigee ユーザーがプロパティ ファイルの所有者であることを確認します。
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 次のように Message Processor を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Message Processor が複数ある場合は、すべての Message Processor で上記の手順を繰り返します。

Message Processor の keep-alive タイムアウトを確認する

このセクションでは、Message Processor の keep-alive タイムアウトが正常に変更されたことを確認する方法について説明します。

特別な構文 conf/http.properties+HTTPClient.keepalive.timeout.millis を使用して Message Processor のキープアライブ タイムアウトを設定しますが、実際のプロパティ HTTPClient.keepalive.timeout.millis に新しい値が設定されているかどうかを確認する必要があります。

  1. Message Processor マシンで、/opt/apigee/edge-message-processor/conf ディレクトリのプロパティ HTTPClient.keepalive.timeout.millis を検索し、次のように新しい値が設定されていることを確認します。
    grep -ri "HTTPClient.keepalive.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Message Processor で新しい keep-alive タイムアウト値が正常に設定された場合、上記のコマンドにより http.properties ファイルに新しい値が表示されます。

    keep-alive タイムアウトを 30 秒に構成した後の、上記のコマンドの結果のサンプルは次のとおりです。

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPClient.keepalive.timeout.millis=30000
    

    上の出力例では、プロパティ HTTPClient.keepalive.timeout.millishttp.properties の新しい値 30000 が設定されています。これは、Message Processor の keep-alive タイムアウトが 30 秒に正常に構成されていることを示します。

  3. まだプロパティ HTTPClient.keepalive.timeout.millis の古い値が表示されている場合は、Message Processor の keep-alive タイムアウトを構成するで説明されているすべての手順を実行したことを確認します。どの手順も見逃した場合は、すべての手順を正しく繰り返してください。
  4. キープアライブのタイムアウトを変更できない場合は、Google Cloud の Apigee Edge サポートにお問い合わせください。