Ich besitze und betreibe visualwebsiteoptimizer.com /. Die App bietet ein Code-Snippet, das meine Kunden in ihre Websites einfügen, um bestimmte Metriken zu verfolgen. Da es sich bei dem Code-Snippet um externes JavaScript handelt (oben im Site-Code), kontaktiert der Browser eines Besuchers unseren App-Server, bevor eine Kunden-Website angezeigt wird. Falls unser App-Server ausfällt, versucht der Browser weiterhin, die Verbindung herzustellen, bevor das Zeitlimit überschritten wird (normalerweise 60 Sekunden). Wie Sie sich vorstellen können, können wir es uns nicht leisten, unseren App-Server in irgendeinem Szenario herunterzufahren, da dies die Erfahrung nicht nur unserer Website-Besucher, sondern auch der Website-Besucher unserer Kunden negativ beeinflusst!
Wir verwenden derzeit einen DNS-Failover-Mechanismus mit einem Sicherungsserver in einem anderen Rechenzentrum (tatsächlich auf einem anderen Kontinent). Das heißt, wir überwachen unseren App-Server von drei verschiedenen Standorten aus. Sobald festgestellt wird, dass er nicht verfügbar ist, ändern wir einen Datensatz so, dass er auf die IP des Sicherungsservers verweist. Dies funktioniert für die meisten Browser einwandfrei (da unsere TTL 2 Minuten beträgt), aber der IE speichert den DNS 30 Minuten lang im Cache, was ein Deal Killer sein könnte. Sehen Sie sich diesen letzten Beitrag von uns an: visualwebsiteoptimizer.com/split-testing-blog/maximum-theoretical-downtime-for-a-website-30-minutes/
Welche Art von Setup können wir verwenden, um ein fast sofortiges Failover sicherzustellen, falls das App-Rechenzentrum einen größeren Ausfall erleidet? Ich habe hier www.tenereillo.com/GSLBPageOfShame.htm gelesen, dass es eine Lösung ist, mehrere A-Datensätze zu haben, aber wir können uns (noch) keine Sitzungssynchronisation leisten. Eine andere Strategie, die wir untersuchen, besteht darin, zwei A-Datensätze zu haben, von denen einer auf den App-Server und der zweite auf einen Reverse-Proxy (der sich in einem anderen Rechenzentrum befindet) verweist, der in den Haupt-App-Server aufgelöst wird, wenn dieser aktiv ist, und in den Backup-Server, wenn er aktiv ist. Halten Sie diese Strategie für angemessen?
Um sicherzugehen, dass wir Prioritäten setzen, können wir es uns leisten, unsere eigene Website oder App auf dem neuesten Stand zu halten, aber wir können nicht zulassen, dass die Website unserer Kunden aufgrund unserer Ausfallzeiten langsamer wird. Falls unsere App-Server nicht verfügbar sind, beabsichtigen wir nicht, mit der Standardantwort der Anwendung zu antworten. Selbst eine leere Antwort wird ausreichen. Wir brauchen nur, dass der Browser diese HTTP-Verbindung herstellt (und sonst nichts).
Referenz: Ich habe diesen Thread gelesen, der nützlich war