Citrix ADC

リクエストの再試行

バックエンドサーバーが TCP 接続をリセットすると、要求の再試行機能は、クライアントにリセットを送信するのではなく、次に使用可能なサーバーに要求を転送します。リロードバランシングを行うことにより、アプライアンスが次に利用可能なサービスに対して同じ要求を開始したときに、クライアントは RTT を保存します。

要求再試行機能は、次のエラーシナリオに適用できます。

  • アプライアンスが要求データパケットを送信すると、バックエンドサーバーは TCP 接続をリセットします。

リクエストの再試行の仕組み

次の図は、コンポーネントが相互にどのように相互作用するかを示しています。

リクエストの再試行の仕組み

  1. このプロセスは、アプライアンスでAppQoE機能を有効にすることから始まります。
  2. クライアントが HTTP または HTTPS 要求を送信すると、負荷分散仮想サーバーは要求をバックエンドサーバーに送信します。
  3. 要求されたサービスが使用できない場合、バックエンドサーバーは TCP 接続をリセットします。
  4. AppQoE 構成で「再試行」を有効にし、必要な再試行回数を指定した場合、負荷分散仮想サーバーは、構成された負荷分散アルゴリズムを使用して、次に使用可能なアプリケーションサーバーに要求を転送します。
  5. 負荷分散仮想サーバーが応答を受信すると、アプライアンスは応答をクライアントに転送します。
  6. 使用可能なバックエンドサーバーがリトライ回数と等しいかそれ以下で、すべてのサーバーがリセットを送信した場合、アプライアンスは 500 の内部サーバーエラーを応答します。使用可能なサーバが 5 つあり、再試行回数が 6 に設定されているシナリオを考えてみましょう。5 台のサーバーすべてが接続をリセットすると、アプライアンスはクライアントに 500 の内部サーバーエラーを返します。
  7. 同様に、バックエンドサーバーの数がリトライ回数を超え、バックエンドサーバーが接続をリセットした場合、アプライアンスはリセットをクライアントに転送します。3 つのバックエンドサーバーがあり、再試行回数が 2 に設定されているシナリオを考えてみましょう。3 台のサーバーが接続をリセットすると、アプライアンスはクライアントにリセット応答を送信します。

GET メソッドのリクエストの再試行を設定する

GETメソッドの再試行機能を設定するには、次の手順を完了する必要があります。

  1. AppQoE を有効にする
  2. AppQoE アクションを追加
  3. AppQoEポリシーの追加
  4. 負荷分散仮想サーバーを AppQoE ポリシーにバインドする

AppQoE を有効にする

コマンドプロンプトで、次のように入力します。 enable ns feature appqoe

AppQoE アクションを追加

AppQoE アクションを構成して、TCP リセット後にアプライアンスを再試行するかどうかを指定し、再試行回数を指定する必要があります。

add appqoe action reset_action -retryOnReset ( YES | NO ) -numretries <positive_integer>]

例:

add appqoe action reset_action –retryOnReset YES –numretries 5

RetryonReset バックエンドサーバーが TCP 接続をリセットした場合は、再試行を有効にします。 numretries。再試行回数。

AppQoEポリシーの追加

AppQoE を実装するには、特定のキュー内の着信 HTTP または SSL 要求に優先順位を付ける AppQoE ポリシーを設定する必要があります。

コマンドプロンプトで、次のように入力します。

add appqoe policy <name> -rule <expression> -action <string>

例:

add appqoe policy reset_policy -rule http.req.method.eq(get) -action reset_action

負荷分散仮想サーバーを Appqoe ポリシーにバインドする

バックエンドサーバーが TCP パケット要求をリセットし、負荷分散仮想サーバーがその要求を次に利用可能なサービスに転送する場合は、負荷分散仮想サーバーを AppQoE ポリシーにバインドする必要があります。

コマンドプロンプトで、次のように入力します。

bind lb vserver <name> ((<serviceName> (-policyName <string> [-priority <positive_integer>] [-gotoPriorityExpression <expression>] [-type ( REQUEST | RESPONSE )]

例:

bind lb vserver v1 -policyName reset_policy -type REQUEST -priority 1

POST 要求に対する要求の再試行の構成

バックエンドサーバーにデータを書き込むバランス要求をリロードするときは、常に注意が必要です。このようなリクエストの場合は、コンテンツの長さを短くしてください。コンテンツの長さが長い場合、リソース消費につながる可能性があります。POST 要求のリロードバランシングを設定するには、次の手順を実行します。

  1. AppQoE を有効にする
  2. AppQoE アクションを追加
  3. AppQoEポリシーの追加
  4. 負荷分散仮想サーバーを AppQoE ポリシーにバインドする

AppQoE を有効にする

コマンドプロンプトで、次のように入力します。

enable ns feature appqoe

Appqoeアクションを追加

TCP リセットと再試行回数の後に再試行する AppQoE アクションを追加する必要があります。

add appqoe action reset_action -retryOnReset ( YES | NO ) -numretries <positive_integer>]

例:

add appqoe action reset_action –retryOnReset YES –numretries 5

Appqoeポリシーを追加

AppQoEを実装するには、AppQoEポリシーを構成して、特定のキューに接続をキューイングする方法を定義する必要があります。

コマンドプロンプトで、次のように入力します。

add appqoe policy <name> -rule <expression> -action <string>

例:

add appqoe policy reset_policy -rule HTTP.REQ.CONTENT_LENGTH.le(2000) -action reset_action

注:

この設定は、要求の再試行機能をコンテンツの長さが 2000 未満に制限する場合に使用できます。

負荷分散仮想サーバーを AppQoE ポリシーにバインドする

バックエンドサーバーが TCP パケット要求をリセットし、負荷分散仮想サーバーがその要求を特定のキューを介して次に使用可能なサービスに転送する場合は、負荷分散仮想サーバーを AppQoE ポリシーにバインドする必要があります。

コマンドプロンプトで、次のように入力します。

bind lb vserver <name> ((<serviceName> (-policyName <string> [-priority <positive_integer>] [-gotoPriorityExpression <expression>] [-type ( REQUEST | RESPONSE )]

例: bind lb vserver v1 -policyName reset_policy -type REQUEST -priority 1

Citrix ADC GUIを使用して再試行要求用のAppQoEポリシーを構成する

  1. [AppExpert] > [AppQoE] > [ポリシー] に移動します
  2. [AppQoEポリシー] ページで、[追加] をクリックします。
  3. [AppQoE ポリシーの作成] ページで、次の パラメータを設定します。名前。AppQoE ポリシー名 b. アクションアクションを追加または編集します。アクションを作成するには、「AppQoE アクションの作成」 セクションを参照してください。 c. 式。HTTP.REQ.CONTENT_LENGTH.le (2000)`` ポリシー式を選択または入力します。
  4. [作成 して 閉じる] をクリックします。

    リクエストの再試行またはリロードバランシングの AppQoE ポリシー

Citrix ADC GUIを使用して要求の再試行バランシングのAppQoEアクションを構成する

  1. AppExpert > AppQoE > アクションに移動します。
  2. AppQoEアクション ページで、「 追加」をクリックします。
  3. [** AppQoE アクションの作成**] ページで、TCP リセット時に再試行するパラメータ a を設定します。TCP リセット時に再試行します。TCP リセットの再試行アクションを有効にするには、このチェックボックスをオンにします。 b. 再試行回数再試行回数を入力します。
  4. [作成 して 閉じる] をクリックします。

    要求の再試行バランシングのための AppQoE アクションの設定

リクエストの再試行