Citrix ADC

Wiederholungsversuche anfordern

Wenn ein Back-End-Server eine TCP-Verbindung zurücksetzt, leitet die Funktion zur Wiederholung der Anforderung die Anfrage an den nächsten verfügbaren Server weiter, anstatt den Reset an den Client zu senden. Durch den erneuten Lastausgleich speichert der Client RTT, wenn die Appliance dieselbe Anfrage an den nächsten verfügbaren Dienst initiiert.

Die Funktion zur Wiederholung der Anforderung gilt für das folgende Fehlerszenario:

  • Der Backend-Server setzt eine TCP-Verbindung zurück, wenn die Appliance ein Anforderungsdatenpaket sendet.
  • Wenn der Back-End-Server eine TCP-Verbindung bei der SYN-Einrichtung zurücksetzt

So funktioniert die Wiederholung der Anfrage, wenn der Back-End-Server beim Empfang eines Anforderungsdatenpakets eine TCP-Verbindung zurücksetzt

Das folgende Diagramm zeigt, wie die Komponenten miteinander interagieren.

So funktioniert eine Wiederholung der Anfrage

  1. Der Prozess beginnt mit der Aktivierung der AppQoE-Funktion auf Ihrer Appliance.
  2. Wenn der Client eine HTTP- oder HTTPS-Anfrage sendet, sendet der virtuelle Lastausgleichsserver die Anfrage an den Back-End-Server.
  3. Wenn der angeforderte Dienst nicht verfügbar ist, setzt der Back-End-Server die TCP-Verbindung zurück.
  4. Wenn für die AppQoE-Konfiguration “Wiederholen” aktiviert ist und die gewünschte Anzahl von Wiederholungsversuchen angegeben ist, verwendet der virtuelle Lastausgleichsserver den konfigurierten Load Balancing-Algorithmus, um die Anforderung an den nächsten verfügbaren Anwendungsserver weiterzuleiten.
  5. Nachdem der virtuelle Lastausgleichsserver die Antwort erhalten hat, leitet die Appliance die Antwort an den Client weiter.
  6. Wenn die verfügbaren Back-End-Server gleich oder kleiner als die Anzahl der Wiederholungen sind und wenn alle Server einen Reset senden, reagiert die Appliance auf einen internen Serverfehler von 500. Betrachten Sie ein Szenario mit fünf verfügbaren Servern und der Wiederholungsanzahl, die auf sechs festgelegt ist. Wenn alle fünf Server die Verbindung zurücksetzen, gibt die Appliance einen internen Serverfehler von 500 an den Client zurück.
  7. Wenn die Anzahl der Back-End-Server größer ist als die Anzahl der Wiederholungsversuche und wenn die Back-End-Server die Verbindung zurücksetzen, leitet die Appliance den Reset an den Client weiter. Stellen Sie sich ein Szenario mit drei Back-End-Servern und der Wiederholungsanzahl vor, die auf zwei festgelegt ist. Wenn die drei Server die Verbindung zurücksetzen, sendet die Appliance eine Reset-Antwort an den Client.

So funktioniert die Wiederholung von Anfragen, wenn der Back-End-Server eine TCP-Verbindung bei SYN-Einrichtung zurücksetzt

Das folgende Diagramm zeigt, dass die Komponenten miteinander interagieren:

So funktioniert eine Wiederholung der Anfrage

  1. Der Prozess beginnt mit der Aktivierung der AppQoE-Funktion auf Ihrer Appliance.
  2. Wenn der Client eine HTTP- oder HTTPS-Anfrage sendet, initiiert der virtuelle Lastausgleichsserver die Verbindung zum Back-End-Server.
  3. Wenn der angeforderte Dienst im TCP-SYN-Betrieb nicht verfügbar ist, setzt der Back-End-Server die TCP-Verbindung zurück.
  4. Wenn für die AppQoE-Konfiguration “Wiederholen” aktiviert ist und die gewünschte Anzahl von Wiederholungsversuchen angegeben ist, verwendet der virtuelle Lastausgleichsserver den konfigurierten Load Balancing-Algorithmus, um die Anforderung an den nächsten verfügbaren Anwendungsserver weiterzuleiten.
  5. Nachdem der virtuelle Lastausgleichsserver die Antwort erhalten hat, leitet die Appliance die Antwort an den Client weiter.
  6. Wenn die verfügbaren Back-End-Server gleich oder kleiner als die Anzahl der Wiederholungen sind und wenn alle Server zurückgesetzt werden, reagiert die Appliance auf einen internen Serverfehler von 500. Betrachten Sie ein Szenario mit fünf verfügbaren Servern und der Wiederholungsanzahl, die auf sechs festgelegt ist. Wenn alle fünf Server die Verbindung zurücksetzen, gibt die Appliance einen internen Serverfehler von 500 an den Client zurück
  7. Wenn die Anzahl der Back-End-Server größer ist als die Anzahl der Wiederholungsversuche und wenn die Back-End-Server die Verbindung auf der TCP-SYN-Einrichtung zurücksetzen, leitet die Appliance den Reset an den Client weiter. Stellen Sie sich ein Szenario mit drei Back-End-Servern und der Wiederholungsanzahl vor, die auf zwei festgelegt ist. Wenn die drei Server die Verbindung zurücksetzen, sendet die Appliance ein Reset-Paket an den Client.

Konfigurieren der Wiederholung der Anfrage für die GET-Methode

Um die Wiederholungsfunktion für eine GET-Methode zu konfigurieren, müssen Sie die folgenden Schritte ausführen.

  1. Aktivieren Sie AppQoE
  2. Add AppQoE action
  3. Add AppQoE policy
  4. Binden von virtuellen Lastenausgleichsserver an AppQoE-Richtlinie

Aktivieren Sie AppQoE

Geben Sie an der Eingabeaufforderung Folgendes ein: enable ns feature appqoe

Add AppQoE action

Sie müssen eine AppQoE-Aktion konfigurieren, um anzugeben, ob die Appliance nach einem TCP-Reset und die Anzahl der Wiederholungsversuche erneut versucht werden soll.

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

Beispiel:

add appqoe action reset_action –retryOnReset YES –numretries 5

Wo, RetryonReset. Aktivieren Sie “Wiederholen”, wenn der Back-End-Server eine TCP-Verbindung zurücksetzt. numretries. Wiederholte Anzahl.

Add AppQoE policy

Um AppQoe zu implementieren, müssen Sie die AppQoE-Richtlinie so konfigurieren, dass die eingehende HTTP- oder SSL-Anfrage in einer bestimmten Warteschlange priorisiert wird.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

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

Binden von virtuellen Lastenausgleichsserver an AppQoE-Richtlinie

Wenn ein Backend-Server eine TCP-Paketanforderung zurücksetzt und der virtuelle Lastausgleichsserver die Anforderung an den nächsten verfügbaren Dienst weiterleiten soll, müssen Sie den virtuellen Lastausgleichsserver an die AppQoE-Richtlinie binden.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

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

Konfigurieren der Wiederholung der Anfrage für POST-Anfragen

Sie müssen immer Vorsicht walten lassen, wenn Sie Kontostandsanforderungen neu laden, die Daten in den Backend-Server schreiben. Stellen Sie bei solchen Anfragen sicher, dass die Inhaltslänge kurz ist. Wenn die Inhaltslänge lang ist, kann dies zum Ressourcenverbrauch führen. Befolgen Sie die unten angegebenen Schritte, um den Reload-Balancing für POST-Anfragen zu konfigurieren.

  1. Aktivieren Sie AppQoE
  2. Add AppQoE action
  3. Add AppQoE policy
  4. Binden von virtuellen Lastenausgleichsserver an AppQoE-Richtlinie

Aktivieren Sie AppQoE

Geben Sie an der Eingabeaufforderung Folgendes ein:

enable ns feature appqoe

Add AppQoE action

Sie müssen eine AppQoE-Aktion hinzufügen, die Sie nach einem TCP-Reset und der Anzahl der Wiederholungsversuche erneut versuchen können.

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

Beispiel:

add AppQoE action reset_action –retryOnReset YES –numretries 5

Add AppQoE policy

Um AppQoe zu implementieren, müssen Sie die AppQoE-Richtlinie so konfigurieren, wie die Verbindungen in einer bestimmten Warteschlange in die Warteschlange gestellt werden.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

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

Hinweis:

Sie können diese Konfiguration verwenden, wenn Sie es vorziehen, die Funktion zur Wiederholung der Anforderung für eine Inhaltslänge von weniger als 2000 einzuschränken.

Binden von virtuellen Lastenausgleichsserver an AppQoE-Richtlinie

Wenn ein Backend-Server eine TCP-Paketanforderung zurücksetzt und der virtuelle Lastausgleichsserver die Anforderung über eine bestimmte Warteschlange an den nächsten verfügbaren Dienst weiterleitet, müssen Sie den virtuellen Lastausgleichsserver an die AppQoE-Richtlinie binden.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

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

Konfigurieren der AppQoE-Richtlinie für die Wiederholung von Anfragen mithilfe der Citrix ADC GUI

  1. Navigieren Sie zu AppExpert > AppQoe > Richtlinien.
  2. Klicken Sie auf der AppQoe-Richtlinienseite auf Hinzufügen.
  3. Legen Sie auf der Seite Create an AppQoE Policy die folgenden Parameter fest:

    • Name. AppQoE-Richtlinienname
    • Aktion. Fügen Sie eine Aktion hinzu oder bearbeiten Sie sie. Informationen zum Erstellen einer Aktion finden Sie unter Abschnitt AppQoE-Aktion erstellen .
    • Ausdruck. Wählen Sie einen HTTP.REQ.CONTENT_LENGTH.le (2000) Richtlinienausdruck aus oder
  4. Klicken Sie auf Erstellen und Schließen.

    AppQoE -Richtlinie für Wiederholungsversuche oder Neulastausgleich

Konfigurieren der AppQoE-Aktion für den Wiederholungsausgleich von Anfragen mithilfe der Citrix ADC GUI

  1. Navigieren Sie zu AppExpert > AppQoe > Action.
  2. Klicken Sie auf der AppQoE -Aktionsseite auf Hinzufügen.
  3. Legen Sie auf der Seite AppQoE Action erstellen die folgenden Parameter für die Wiederholung beim TCP-Reset fest: a. Wiederholen Sie es bei TCP-Reset. Aktivieren Sie das Kontrollkästchen, um die Wiederholungsaktion für TCP-Reset zu aktivieren. b. Wiederholen Sie die Anzahl. Geben Sie die Anzahl der Wiederholungen ein.
  4. Klicken Sie auf Erstellen und Schließen.

    Konfigurieren der AppQoE-Aktion für den Wiederholungsausgleich von Anfragen

Konfigurieren der Wiederholung der Anfrage für die GET-Methode beim Zurücksetzen des Backend-Servers bei TCP-SYN-Einrichtung

Die CLI- und GUI-Konfiguration ähnelt den Schritten für die GET-Methode. Weitere Informationen finden Sie unter Abschnitt Konfigurieren von Anforderungstversuchen für GET-Methode . Wenn der Back-End-Server eine Verbindung zurücksetzt.