Spiegelung des Datenverkehrs mit Nginx (um die Verfügbarkeit zu erhöhen und die Latenz zu verringern)

Spiegelung des Datenverkehrs mit Nginx (um die Verfügbarkeit zu erhöhen und die Latenz zu verringern)

Ich muss den Datenverkehr, der auf meinen Server gelangt, duplizieren/spiegeln.

Ich meine, ich habe N Backend-Server A1 A2 ... An(n>=2) und einen Nginx als Reverse-Proxy und Load Balancer.

Der gesamte Verkehr, der zu Nginx kommt, wird sowohl zu Ax als auch zu Ay(x!=y) umgeleitet inparallelWenn einer der Server ausfällt (Timeout oder 5xx), kann die Antwort des anderen Servers sofort verwendet werden und das Ergebnis an den Client zurückgeben.

Durch Spiegelung des Datenverkehrs (kein erneuter Versuchaber senden Sie die duplizierten Anfragen parallel), kann ich Redundanz erstellen, d. h. mehrere Backend-Server können eine Anfrage gleichzeitig verarbeiten.

Ich muss dem Client innerhalb von 30 ms antworten. Wenn „Retrys“ auf 1 gesetzt ist, muss das Timeout auf 15 ms eingestellt werden (schwer zu archivieren). Daher kann das Spiegeln des Datenverkehrs eine Lösung sein.

Ist es möglich?

Antwort1

Ihre Frage hat im Allgemeinen fast eine Antwort von selbst. Was Sie beschreiben, ist lediglich Lastenausgleich mit Integritätsprüfungen. Das ist mit nginx definitiv möglich und ein solches Setup wird in deren Dokumentation beschrieben:http://nginx.org/en/docs/http/load_balancing.html

verwandte Informationen