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 zum erneuten Anfordern von Versuchen gilt für das folgende Fehlerszenario:

  • Der Backend-Server setzt eine TCP-Verbindung zurück, wenn die Appliance ein Anforderungsdatenpaket sendet.
  • Wenn der Backend-Server beim Aufbau des SYN eine TCP-Verbindung 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 in der Befehlszeile Folgendes ein: enable ns feature appqoe

Add AppQoE action

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

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

Beispiel:

add appqoe action reset_action –retryOnReset YES –numretries 5

Wobei 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 in der Befehlszeile 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 in der Befehlszeile 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 Sie den Wiederholungsversuch für POST-Anfragen

Sie müssen immer vorsichtig sein, wenn Sie Balancing-Anfragen 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 zu einem Ressourcenverbrauch führen. Folgen Sie den unten angegebenen Schritten, 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 in der Befehlszeile 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 in der Befehlszeile 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 erneuten Anforderung von Anfragen für Inhalte mit einer Länge von weniger als 2000 einzuschränken.

Binden von virtuellen Lastenausgleichsserver an AppQoE-Richtlinie

Wenn ein Backend-Server eine TCP-Paketanforderung zurücksetzt und Sie möchten, dass der virtuelle Lastausgleichsserver die Anfrage ü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 in der Befehlszeile 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 Sie die AppQoE-Richtlinie für den erneuten Versuch von Anfragen mithilfe der NetScaler ADC GUI

  1. Navigieren Sie zu AppExpert > AppQoe > Richtlinien.
  2. Klicken Sie auf der Seite AppQoE-Richtlinien 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 .
    • Expression. Wählen oder geben Sie den Richtlinienausdruck HTTP.REQ.CONTENT_LENGTH.le (2000) ein.
  4. Klicken Sie auf Erstellen und Schließen.

Konfigurieren Sie die AppQoE-Aktion für den erneuten Anforderungsausgleich mithilfe der NetScaler ADC GUI

  1. Navigieren Sie zu AppExpert > AppQoe > Action.
  2. Klicken Sie auf der Seite AppQoE-Aktionen auf Hinzufügen.
  3. Stellen Sie auf der Seite AppQoE-Aktion erstellen die folgenden Parameter für den erneuten Versuch beim TCP-Reset ein: a. Versuchen Sie es erneut beim TCP-Reset. Aktivieren Sie das Kontrollkästchen, um die Wiederholungsaktion für den TCP-Reset zu aktivieren. b. Anzahl der Wiederholungsversuche. Geben Sie die Anzahl der Wiederholungsversuche ein.
  4. Klicken Sie auf Erstellen und Schließen.

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.