Wiederholungsversuch anfordern, wenn die Antwort des Backend-Servers abgelaufen ist
So funktioniert die Wiederholung von Anfragen, wenn die Antwort des Backend-Servers zu einem Timeout kommt
-
Der Vorgang beginnt mit der Aktivierung der Appqoe-Funktion auf Ihrer Appliance.
-
Die Appqoe-Konfiguration hat den Parameter „RetryOnTimeout“ in Millisekunden.
-
Wenn die Appliance eine Anfrage sendet und der Server mehr Zeit benötigt, um zu antworten, führt die Appliance einen Neulastausgleich auf der Grundlage des konfigurierten Timeout-Werts durch. Die Appliance setzt die Verbindung zurück, wählt einen anderen Dienst und leitet die Anfrage weiter, anstatt auf die Serverantwort zu warten.
-
Nachdem der virtuelle Lastausgleichsserver die Antwort erhalten hat, leitet die Appliance die Antwort an den Client weiter. Die Verwendung eines Timeout-Parameters verhindert, dass die Appliance weiter auf eine Serverantwort wartet, was zu einem erhöhten RTT führt.
-
Wenn die verfügbaren Backend-Server gleich oder kleiner als die Anzahl der Wiederholungsversuche sind und wenn bei allen Servern ein Timeout für die Anfrage auftritt, würde die Appliance einen internen Serverfehler von 500 melden. Betrachten Sie ein Szenario mit fünf verfügbaren Servern und der Wiederholungsanzahl, die auf sechs festgelegt ist. Wenn bei allen fünf Servern ein Timeout für die Anfrage auftritt, gibt die Appliance einen internen Serverfehler von 500 an den Client zurück.
-
In ähnlicher Weise wartet die Appliance auf den letzten Dienst, wenn die Anzahl der Backend-Server die Anzahl der Wiederholungsversuche übersteigt und wenn der Backend-Server bei einer Anfrage ein Timeout durchführt, bis der Server eine Antwort sendet oder die Client-Leerlaufverbindung abläuft. Stellen Sie sich ein Szenario mit drei Back-End-Servern und der Wiederholungsanzahl vor, die auf zwei festgelegt ist. Wenn alle drei Server auf die Anfrage hin ein Timeout haben, wartet die Appliance weiter auf den dritten Dienst, bis der Server eine Antwort sendet oder die inaktive Client-Verbindung abläuft.
Konfigurieren Sie den Wiederholungsversuch (GET- und POST-Methode), wenn die Antwort des Backend-Servers zu einem Timeout führt
-
Appqoe aktivieren
-
Appqoe-Aktion konfigurieren
-
Appqoe-Richtlinie hinzufügen
-
Binden Sie die Appqoe-Richtlinie an den virtuellen Lastenausgleich
Appqoe aktivieren
enable ns feature appqoe
Appqoe-Aktion für Timeout hinzufügen
add appqoe action <name> -retryOnTimeout <msecs> -numRetries <positive_integer>
add appqoe action appact1 -retryOnTimeout 35 –numRetries 5
Appqoe-Richtlinie hinzufügen
add appqoe policy <name> -rule <rule> -action <name>
add appqoe policy timeout_policy -rule http.req.method.eq(get) -action appact1
Binden Sie die Appqoe-Richtlinie an den virtuellen Lastenausgleich
bind lb vserver <name> ((<serviceName> (-policyName <string> [-priority <positive_integer>] [-gotoPriorityExpression <expression>] [-type ( REQUEST | RESPONSE )]
bind lb vserver v1 -policyName timeout_policy -type REQUEST -priority 1
Konfigurieren Sie die AppQoE-Richtlinie für das Re-Loadbalancing bei Timeout mithilfe der NetScaler-GUI
-
Navigieren Sie zu AppExpert > AppQoe > Richtlinien.
-
Klicken Sie auf der Seite AppQoE-Richtlinien auf Hinzufügen.
-
Legen Sie auf der Seite Create an AppQoE Policy die folgenden Parameter fest:a. Name. AppQoE-Richtlinienname b. Aktion. Fügen Sie eine Aktion hinzu oder bearbeiten Sie sie. Informationen zum Erstellen einer neuen Aktion finden Sie im Abschnitt AppQoE-Aktion erstellen. c. Expression. Wählen Sie den Richtlinienausdruck „http.req.method.eq (get)“ aus oder geben Sie ihn ein.
-
Klicken Sie auf Erstellen und Schließen.
Konfigurieren Sie die AppQoE-Aktion für die Wiederholung von Anfragen mithilfe der NetScaler-GUI
-
Navigieren Sie zu AppExpert > AppQoe > Action.
-
Klicken Sie auf der Seite AppQoE-Aktionen auf Hinzufügen.
-
Stellen Sie auf der Seite „ AppQoE-Aktion erstellen “ den folgenden Parameter für den Wiederholungsversuch beim Antworttimeout des Backend-Servers ein: a. Versuchen Sie es erneut bei Timeout. Versuchen Sie es erneut, wenn das Anforderungs-Timeout (in Millisekunden) abgelaufen ist, wenn eine Anfrage an Backend-Server gesendet wird.
-
Klicken Sie auf Erstellen und Schließen.