Redundanz verteilter Website-Server

Redundanz verteilter Website-Server

Gehen Sie davon aus, dass die Infrastruktur einer Website sehr komplex und vollständig verteilt ist (wahrscheinlich wie bei den meisten großen Webunternehmen).

Habe ich Recht, wenn ich denke, dass es trotz all dieser zusätzlichen Webserver zur Bearbeitung mehrerer Client-Anfragen immer noch eine einzige „Maschine“ gibt, auf die sich die Benutzer einloggen müssen? Ich vermute, diese Maschine ist diejenige, die physisch mit der IP-Adresse verknüpft ist?

Ich frage, weil ich wissen muss, ob es an Orten, an denen verteilte Systeme existieren, immer noch einen einzelnen Ausfallpunkt gibt – normalerweise den Kontrollknoten oder in diesem Beispiel die Maschine, die mit dem öffentlichen Internet verbunden ist? Es können doch nicht zwei Maschinen mit dem Internet verbunden sein, da sie unterschiedliche IP-Adressen haben müssten?

Diese „Maschine“ ist möglicherweise kein Server an sich, aber vielleicht ist es ein Cisco-Gerät. Ich muss nur wissen, ob diese verteilten Systeme in der realen Welt immer noch einen bestimmten Abschnitt haben, in dem sie von der Integrität eines elektronischen Geräts abhängen?

Antwort1

Es kann, muss aber nicht, eine Maschine geben, über die alle Anfragen laufen. Oft wird diese Maschine alsLastenausgleicher. Wenn jedoch jede Anfrage eines Clients in sich geschlossen ist oder wenn das verteilte Front-End mit einem synchronen verteilten Back-End kommunizieren kann, kann ein Client für jede Anfrage mit einer anderen Maschine kommunizieren.

Alles, was passieren muss, ist, dass entweder der Client der unabhängigen Maschine alle Informationen gibt, die diese braucht, um die Anfrage selbst abzuschließen, oder dass der Server eine Abfrage an eine verteilte Back-End-Datenbank anhand eines Tokens (häufig ein Cookie für Websites) macht und der Server dort weitermachen kann, wo die andere Maschine aufgehört hat.

Antwort2

Zur Beantwortung Ihrer Frage,Nein, Sie können eine Website-Infrastruktur ohne einzelne Fehlerpunkte aufbauen.

DNS Round-Robin ermöglicht die Zuordnung mehrerer IPs zu einem einzigen Domänennamen. Jedes dieser Frontends kann wiederum mitgruppiertBackend-Systeme, wobei mehrere unabhängige Kopien der Datenbanken existieren, die kontinuierlich synchronisiert werden.

Jeff Atwood tatsächlichgebloggtüber die Arbeit von Netflix, sein System unempfindlich gegen einzelne Fehlerquellen zu machen, einschließlich eines Daemons, der zufällig Dienste/Instanzen herunterfährt, die sie zu Testzwecken verwenden.

Antwort3

Einige Beispiele:

Machen Sie eine Website mit IP-Failover, Heartbeat und Pacemaker auf Ubuntu 9.10 (Karmic) hochverfügbar

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

Dieselben Prinzipien können auf jedes Front-End-System angewendet werden, beispielsweise auf einen Load Balancer, dessen Aufgabe es ist, eingehende HTTP-Anfragen an Webserverknoten in einer Serverfarm zu verteilen.

Antwort4

Es können (und sind) mehrere verschiedene IP-Adressen mit einem einzigen Domänennamen verknüpft sein. Beispielsweise wird google.com derzeit (für mich) wie folgt aufgelöst:

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 variiert, aber im Allgemeinen probiert er eine IP-Adresse nach dem Zufallsprinzip aus und wechselt zu einer anderen, wenn er von der ersten keine Antwort erhält. Es gibt hier also keinen einzelnen Fehlerpunkt.

verwandte Informationen