2017-04-03 1 views
0

Ich erstelle eine App, die einen Webdienst mit zwei identischen Instanzen aufruft, die jeweils auf einem anderen Server mit einer eigenen IP ausgeführt werden.Umgang mit Fehlern eines Webdiensts, der auf mehreren Instanzen ausgeführt wird

Die App kann jederzeit eine beliebige Dienstinstanz aufrufen, aber manchmal kann es Schwierigkeiten haben, eine Antwort von einer von ihnen zu erhalten (wegen eines Netzwerkfehlers oder eines Problems mit der Instanz).

Was ist die empfohlene Methode, damit die App die problematische Instanz nicht mehr automatisch verwendet?

Wie kann die Instanz wieder verwendet werden, wenn sie wieder online ist?

Gibt es Standardbibliotheken oder Tools, die diese Art von Szenario unterstützen?

+1

Normalerweise verfügen Sie über einen Lastenausgleichsserver, der die Anforderung an die beiden Instanzen weiterleitet. Die Clientanwendung sollte eine Verbindung mit dem Lastenausgleichs-URI herstellen und sollte sich Ihrer beiden Instanzen nicht bewusst sein. Wenn eine der Instanzen fehlschlägt, leitet der Lastenausgleich den gesamten Datenverkehr an die verbleibende Instanz weiter, bis die fehlgeschlagene Instanz wieder hochgefahren wurde. – Dijkgraaf

Antwort

0

Verwenden Sie einen Lastenausgleich.

Ihre App muss sich direkt mit dem LB und nicht mit den Webservern verbinden. LBs behalten den Status jedes Servers bei, mit dem sie konfiguriert sind (durch Timeout oder explizite HTTP-Statusaufrufe). Sie deaktivieren automatisch Verkehr von den getrennten Servern und aktivieren ihn, sobald die Instanz zurück ist.

Später können Sie Instanzen basierend auf Ihren Anforderungen hinzufügen oder entfernen (manuelle oder automatische Skalierung), ohne dass Änderungen an Ihrer App erforderlich sind.

HAProxy und Nginx sind weit verbreitet für Internet-Load-Balancing. Cloud-Anbieter bieten dies auch als Service an, den Sie verwenden können, wenn Sie sich in einer Cloud befinden (da AWS über einen elastischen Lastenausgleich verfügt, Google Cloud über einen Lastenausgleich verfügt).

Verwandte Themen