2008-10-17 7 views
30

Ich staune oft, wie ich jederzeit von überall auf der Welt auf www.google.com zugreifen und die zurückgegebene Seite so schnell abrufen kann.Wie skalieren Sie HTTP-Server wie Google?

Sicher, sie komprimieren ihre Ausgabe und behalten ein minimales Design - das hilft.

Aber sie müssen Millionen von simultanen Treffern auf die im Internet sitzende Box haben, die DNS als "www.google.com" auflistet.

Alle von Ihnen, die Apache oder andere Webserver eingerichtet haben, wissen, dass die Dinge großartig und super schnell sind, bis Sie ein paar tausend gleichzeitige Verbindungen bekommen, geschweige denn Millionen!

Also, wie machen sie das? Ich nehme an, sie haben eine ganze Farm von Servermaschinen, aber Sie würden es nie wissen. Als ich gerade nach Verizon kam, war die URL www22.verizon.com. Sie sehen nie "www22.google.com", nie.

Irgendwelche Ideen, welche speziellen Technologien sie verwenden oder welche Technologien wir Nicht-Google Sterblichen verwenden können, um das Gleiche zu tun?

+0

Grundsätzlich eine IP-Adresse bedeutet nicht, es nur auf ein Feld beziehen. – Pacerier

Antwort

0

Dies ist normale Internet-Verkehrsabwicklung. Google hat buchstäblich ganze Rechenzentren überall auf dem Planeten, die

3

http://www.akamai.com

Oder ins Englische übersetzt zu www.google.com reagieren (und vielleicht auch auf Chris Antwort auszuarbeiten), ein Content Delivery Network (CDN) verwenden, um mit Knoten auf der ganzen Welt - beachten Sie, dass dies nicht nur Rechenzentren, sondern tatsächliche Webserver sind (obwohl ich sicher bin, dass die meisten keine großen Knochen über die Unterscheidung machen würden). Akamai ist nur ein Beispiel; Hit Google für "Content Delivery Network" und Sie sind verpflichtet, andere zu finden.

Sie können auch eine Cache-Strategie implementieren, obwohl das wahrscheinlich nicht ganz so weit kommt. ;)

1

Neben großen Web-Farmen, kein Zweifel, dass sie eine Menge Caching tun. Sie konnten alles vom Seiteninhalt bis zu häufigen Suchbegriffen zwischenspeichern. Und Caching ist etwas, das auch Nicht-Google-Sterbliche tun können.

+0

Ich erinnere mich, irgendwo gelesen zu haben, dass Google fast alle ihre Seitenauflistungen zu einem beliebigen Zeitpunkt im Speicher hält. –

+0

Caching ist nicht genug - Millionen von Hits, die gleichzeitig nach statischen Webseiten fragen, würden die meisten Setups immer noch in die Knie zwingen. Es ist mehr mit DNS zu tun – Draemon

42

google.com, update.microsoft.com und andere Dienste, die erstaunlich hohe aggregierte Bandbreite behandeln, tun viel von ihrer Magie über DNS.

BGP Anycast Routing wird verwendet, um die IP-Adresse ihrer DNS-Server von mehreren Punkten auf der ganzen Welt bekannt zu geben. Jeder DNS-Server ist so konfiguriert, dass er google.com in IP-Adressen innerhalb eines geographisch nahen Datencenters auflöst. Dies ist die erste Ebene des Lastenausgleichs, die geografisch basiert.

Als Nächstes gibt eine DNS-Abfrage für google.com nur eine kleine Anzahl von IP-Adressen zurück, der DNS-Server durchläuft jedoch schnell eine große Anzahl von Adressen in seinen Antworten. Jeder Client, der google.com anfordert, erhält eine bestimmte Antwort und darf diese Antwort für eine Weile zwischenspeichern. Der nächste Client erhält jedoch eine andere IP-Adresse. Dies ist also die zweite Stufe des Lastausgleichs.

Drittens verwenden sie herkömmliche Server Load Balancer zum Zuordnen von Sitzungen zu einer einzelnen IP-Adresse zu mehreren Back-End-Servern. Dies ist also eine dritte Stufe des Lastausgleichs.

7

Auf dem Google-Tag der offenen Tür in Austin zeigte Alan Eustace gestern ein Bild von Googles Datenzentrum in The Dalles, Oregon und sagte, dass es ungefähr drei Fußballfelder groß sei.

Es ist einer der neueren, aber Google hat mehrere Rechenzentren. Es ist nicht so, dass jede Abfrage an denselben Computer gesendet wird.

Trotzdem, wenn Sie schätzen, wie viele Computer Google hat und wie viele Abfragen gegen Google jede Sekunde durchgeführt werden, muss jeder einzelne Server eine Menge Anfragen bearbeiten.

Hier einige Lesung, wie dies erleichtert:

http://research.google.com/archive/bigtable.html
http://labs.google.com/papers/gfs.html

Und http://research.google.com/ in der Regel viele coole Infos gibt.

0

Sie haben auch benutzerdefinierte Web Server, TCP/IP-Stack [zusammen mit der Infrastruktur], ich las vor Jahren ... Ich bezweifle, ob Apache oder IIS oder andere kommerzielle/populäre Web-Server kann das übereinstimmen ...

4

Moishe ist richtig: Obwohl die Bereitstellung von statischen Webinhalten im Google-Maßstab schwierig genug ist, ist es ziemlich gut verstanden und viele andere Leute machen das gleiche.

Aber es ist wirklich die Lieferung von dynamischen Inhalten, für die Google der Wegbereiter war, seit ihrem Papier, das alles begann: The Anatomy of a Search Engine. Es gibt viele clevere Techniken, von denen einige hier erwähnt wurden, aber immer noch ... Do beliebige Abfrage auf Google, mit Abfrage Begriffe, die nicht zusammen gehören - sie werden nicht im Cache - und Sie werden immer noch Holen Sie sich in einigen hundert Millisekunden ein Ergebnis zurück, das ist absolut unglaublich.

Um es noch komplizierter zu machen, gibt es die neue SearchWiki Funktionalität, die dynamischen Inhalte auf jedes Suchergebnis und begrenzte Personalisierung der Ergebnisse ergänzt, wenn Sie angemeldet sind.

Google hat bei der Öffnung gut gewesen (bis zu einem gewissen Grad) die Klugheit, die alles möglich macht. Letztendlich läuft alles darauf hinaus, alles so zu konstruieren, dass es horizontal gut skalierbar ist. Auf diese Weise kann Google mit dem exponentiellen Wachstum des Internets Schritt halten: Fügen Sie einfach weitere Hardware zu Ihren BigTable-, Map/Reduce- und Google File System-Farmen hinzu. Durch den Einsatz von Massenhardware mit guter Infrastruktur und gutem Management konnte Google es sich leisten, den gesamten Index im Speicher zu halten, und Abfragen von einem Rechner zum anderen waren schneller als auf dem Datenträger.

In der Zwischenzeit Yahoo! kauften immer größere monolithische Maschinen, bis Sun sie nicht mehr groß genug machen konnte und sie viel zu spät auf Hadoop! umschalten mussten.

Skalierung der HTTP-Server bei Google ist der einfache Teil!