Lassen Sie mich vorab sagen, dass ich kein Systemadministrator, sondern ein Programmierer bin.
Kürzlich haben unsere Systemadministratoren F5-Load-Balancer installiert. Seitdem ist mir aufgefallen, dass der Load Balancer jedes Mal, wenn eine Anfrage abläuft und eine 500 auslöst, dieselbe Anfrage an unseren anderen Server sendet. IIS sendet die Timeout-Antwort, obwohl das Skript tatsächlich noch ausgeführt wird. Selbst POST-Anforderungen werden dupliziert, wenn ein Skript länger als 5 Minuten ausgeführt wird. Dies scheint mir ein potenzielles Problem zu sein, insbesondere bei E-Commerce-Websites, bei denen die Kundenabrechnung eine Rolle spielt.
Dies ist nur ein Problem mit einigen unserer länger laufenden Skripte (aber es ist ein ernstes Problem). Mir wurde gesagt, dass dies ein erwartetes Verhalten ist, und wir müssen unseren Code ändern, um ihn anzupassen. Meine Fragen sind also:
- Ist das erwartetes Verhalten?
- Was ist der Vorteil, wenn der Load Balancer die Anforderung nach einer anderen Zeitüberschreitung repliziert, als wenn der Benutzer nicht aktualisieren muss?
- Wenn mit dieser Architektur ein Skript ausgeführt wird, das entweder den Server blockiert oder Ressourcen blockiert, wird es auf beiden Servern ausgeführt. Ist das wirklich optimal?
quelle
Antworten:
Schauen Sie sich diesen Eintrag zur passiven Anwendungsüberwachung in Big-IP an
Meine Antworten auf Ihre Fragen, so enttäuschend sie auch sein mögen, sind
Möglicherweise (hängt von der passiven Überwachungskonfiguration ab)
Benutzer sieht keinen Fehler
"Aktion bei Ausfall des Dienstes" ist eine konfigurierbare Einstellung.
quelle
Wenn ein 500-Fehler auftritt, weist dies auf ein Problem auf dem Webserver hin. Der F5 leitet diesen Fehler dann einfach an den Verbindungsclient weiter. Die Anfrage wird nicht von selbst "erneut gesendet". Dies kann nur passieren, wenn der Client die Anforderung erneut versucht. Zu diesem Zeitpunkt könnte diese Anforderung möglicherweise an ein anderes Poolmitglied verteilt werden, obwohl es keine Garantie gibt und sie entweder auf der Persistenz oder der verwendeten Lastausgleichsmethode (Round Robin, geringste Verbindungen usw.) basiert.
Kurz gesagt, es sei denn, Sie haben eine wirklich verrückte iRule auf Ihrem F5, dies ist ein Verhalten, das durch das Skript selbst verursacht wird.
(Hinweis: Ich war anderthalb Jahre lang Nework Support Engineer für F5 und arbeitete mit dem LTM.)
quelle