Ich habe jahrelang ein DNS-RR-Failover auf einer produktionsintensiven, aber geschäftskritischen Website (über zwei Regionen hinweg) durchgeführt.
Es funktioniert gut, aber es gibt mindestens drei Feinheiten, die ich auf die harte Tour gelernt habe.
1) Browser werden nach 30 Sekunden (das letzte Mal, als ich es überprüft habe) von einer nicht funktionierenden IP-Adresse auf eine funktionierende IP-Adresse umgestellt, wenn beide in dem zwischengespeicherten DNS, das Ihren Clients zur Verfügung steht, als aktiv angesehen werden. Das ist im Grunde eine gute Sache.
Es ist jedoch inakzeptabel, "die Hälfte" Ihrer Benutzer 30 Sekunden warten zu lassen. Daher sollten Sie Ihre TTL-Datensätze wahrscheinlich auf einige Minuten und nicht auf einige Tage oder Wochen aktualisieren, damit Sie im Falle eines Ausfalls den ausgefallenen Server schnell entfernen können von Ihrem DNS. Andere haben in ihren Antworten darauf hingewiesen.
2) Wenn einer Ihrer Nameserver (oder einer Ihrer beiden Standorte) ausfällt, der Ihrer Round-Robin-Domain dient, und der primäre davon ausfällt, kann ich Sie vage daran erinnern, dass Sie auf andere Probleme stoßen, die versuchen, dies zu beheben Nameserver von DNS heruntergefahren, wenn Sie Ihre SOA-TTL / das Ablaufdatum für den Nameserver nicht ebenfalls auf einen ausreichend niedrigen Wert eingestellt haben. Ich könnte die technischen Details hier falsch haben, aber es gibt mehr als nur eine TTL-Einstellung, die Sie benötigen, um richtig gegen einzelne Fehlerpunkte zu verteidigen.
3) Wenn Sie Web-APIs, REST-Services usw. veröffentlichen, werden diese in der Regel nicht von Browsern aufgerufen. Meiner Meinung nach weist das DNS-Failover also echte Mängel auf. Dies mag der Grund sein, warum manche sagen, wie Sie es ausdrückten, "es ist nicht empfehlenswert". Hier ist, warum ich das sage. Erstens sind die Apps, die diese URLs verwenden, in der Regel keine Browser, sodass ihnen die 30-Sekunden-Failover-Eigenschaften / -Logik gängiger Browser fehlen. Zweitens hängt die Frage, ob der zweite DNS-Eintrag aufgerufen oder sogar DNS erneut abgefragt wird, stark von den Programmierdetails der Netzwerkbibliotheken in den von diesen API / REST-Clients verwendeten Programmiersprachen sowie deren Aufruf ab die API / REST-Client-App. (Ruft die Bibliothek unter dem Deckmantel get_addr auf und wann? Wenn Sockets hängen oder geschlossen werden, öffnet die App neue Sockets erneut? Gibt es eine Art Timeout-Logik? Usw. usw.)
Es ist billig, gut getestet und "meistens funktioniert". Wie bei den meisten Dingen kann Ihr Kilometerstand variieren.