Verteilte Website-Server-Redundanz

450
Keith Lion

Angenommen, eine Website-Infrastruktur ist sehr kompliziert und vollständig verteilt (wahrscheinlich wie die meisten großen Web-Unternehmen).

Habe ich zu Recht die Ansicht, dass es zwar all diese zusätzlichen Webserver gibt, um mehrere Clientanfragen zu bearbeiten, es jedoch immer noch eine einzige "Maschine" gibt, auf die Benutzer zugreifen müssen? Ich vermute, dass diese Maschine physisch der IP-Adresse zugeordnet ist.

Ich frage, weil ich wissen muss, ob es an Orten, an denen verteilte Systeme existieren, immer noch eine einzige Fehlerstelle gibt - in der Regel der Steuerknoten oder in diesem Beispiel die mit dem öffentlichen Internet verbundene Maschine. Sicherlich können nicht zwei Maschinen mit dem Internet verbunden sein, da sie unterschiedliche IP-Adressen haben müssten.

Diese "Maschine" ist zwar kein Server an sich, aber es handelt sich möglicherweise um ein Cisco-Gerät. Ich muss nur wissen, ob diese verteilten Systeme in der Realität noch einen bestimmten Abschnitt haben, in dem sie von der Integrität eines elektronischen Geräts abhängen.

1
Es ist durchaus möglich, Systeme zu bauen, bei denen es keinen einzigen Ausfallpunkt gibt. Dies ist häufig teuer und viele der Techniken, um dies zu erreichen, erfordern eine ziemlich komplexe Konfiguration. Zoredache vor 11 Jahren 0
http://en.wikipedia.org/wiki/Round_robin_dns http://en.wikipedia.org/wiki/Anycast Zoredache vor 11 Jahren 0

4 Antworten auf die Frage

1
Scott Chamberlain

Es kann sein, dass eine Maschine alle Anforderungen durchläuft, muss aber nicht sein. Diese Maschine wird häufig als Lastausgleich bezeichnet . Wenn jedoch jede Anforderung, die ein Client stellt, in sich abgeschlossen ist, oder wenn das verteilte Front-End mit einem verteilten Back-End kommunizieren kann, das synchron ist, kann ein Client für jede Anforderung, die er stellt, mit einem anderen Computer sprechen.

Es muss lediglich geschehen, dass entweder der Client dem unabhängigen Rechner alle erforderlichen Informationen zur Verfügung stellt, um die Anforderung in der Anforderung selbst auszuführen, oder der Server fragt eine verteilte Backend-Datenbank nach einem Token (häufig ein Cookie für Websites) ) und der Server kann dort weitermachen, wo der andere Rechner aufgehört hat.

1
Darth Android

Um Ihre Frage zu beantworten: Nein, Sie können eine Website-Infrastruktur ohne einzelne Fehlerquellen erstellen.

Durch das Round-Robin-Verfahren von DNS können mehrere IPs einem einzigen Domänennamen zugeordnet werden. Jedes dieser Frontends kann wiederum mit Clustern sprechen Backend-Systemen kommunizieren, wobei es mehrere unabhängige Kopien der Datenbanken gibt, die kontinuierlich synchronisiert werden.

Jeff Atwood tatsächlich gebloggt über Netflix Arbeit bei ihrem System unempfindlich gegen einzelne Fehlerquellen, darunter ein Daemon, den Dienst / Instanzen nimmt zufällig nach unten, die sie zum Testen verwenden.

1
RedGrittyBrick

Einige Beispiele:

Machen Sie eine Website mit IP-Failover, Heartbeat und Schrittmacher unter Ubuntu 9.10 (Karmic) hoch verfügbar

Microsoft Cluster Server (MSCS) bietet die Möglichkeit, eine IP-Adressressource innerhalb eines Clusters zu definieren und von einem Knoten auf einen anderen zu wechseln.

Die gleichen Prinzipien können auf jedes Front-End-System angewendet werden, z. B. auf einen Lastverteiler, dessen Aufgabe darin besteht, eingehende HTTP-Anforderungen an Webserverknoten in einer Serverfarm zu verteilen.

0
Mike Scott

Es können (und sind oft) mehrere unterschiedliche IP-Adressen mit einem einzelnen Domänennamen verknüpft sein. Beispielsweise löst google.com derzeit (für mich) Folgendes auf:

Name: google.com Address: 173.194.34.129 Name: google.com Address: 173.194.34.130 Name: google.com Address: 173.194.34.131 Name: google.com Address: 173.194.34.132 Name: google.com Address: 173.194.34.133 Name: google.com Address: 173.194.34.134 Name: google.com Address: 173.194.34.135 Name: google.com Address: 173.194.34.136 Name: google.com Address: 173.194.34.137 Name: google.com Address: 173.194.34.142 Name: google.com Address: 173.194.34.128 

Das Verhalten des Webbrowsers ist unterschiedlich, aber im Allgemeinen wird eine IP-Adresse nach dem Zufallsprinzip ausprobiert und zu einer anderen weitergeleitet, wenn sie von der ersten keine Antwort erhält. Es gibt also hier keinen einzigen Versagenspunkt.