web-dev-qa-db-de.com

Wie kann ich eine einzelne Website auf mehreren Servern hosten?

Ich plane die Veröffentlichung einer iOS-App, die Videos von meinem Server herunterlädt. Wenn Hunderte von Menschen am Starttag versuchen, dies zu tun, werden meine Website und die von meinem Server bereitgestellten Dienste eindeutig ausfallen. Wie hosten Sie eine Website auf mehreren Servern? Wie wird die Anfrage an einen verfügbaren Server weitergeleitet, wenn jemand versucht, auf meine Website zuzugreifen? Wie machen Apple und Google das? Danke für Ihre Hilfe.

10
abcd

Was die großen Leute (Google, Apple usw.) betrifft, so haben sie eine ausgefeilte und teure Hardware für den Verkehr auf den Routen.

Eine einfachere Lösung wäre, mehrere Hosts einzurichten und einen einzigen Host zu haben, der die Anforderungen wechselt.

Angenommen, wir haben 5 Server für das Hosten des Videos mit dem Namen VideoHostN und einen einzelnen Server, der von dem Server mit dem Namen RoutingHost getrennt ist.

Der erste iOS-Client fordert die Adresse an, um das Video von RoutingHost abzurufen. RoutingHost gibt die Adresse auf VideoHost1 zurück.

Zweite iOS-Client-Anforderungen. RoutingHost antwortet mit VideoHost2.

Also weiter, bis es unser hypothetisches Maximum, VideoHost5, erreicht und auf VideoHost1 zurückgesetzt wird.

Benötigen Sie nur einen einfachen serverseitigen Code, um festzustellen, welcher VideoHost als Nächstes verwendet werden soll, und geben Sie die Adresse an diesen zurück.

Dies ist eine kostengünstige und einfache Möglichkeit, Benutzer zu verteilen. Dies garantiert nicht, dass Sie einige Benutzer bei einem bestimmten VideoHost nicht verstopfen. Es ist zufällig, dass mehrere Benutzer mit langsamen Verbindungen am selben Ort landen, aber es ist ein Anfang.

5
Chris

Sie können den Lastenausgleich gemäß dem Link von @ PeeHaa zum Wikipedia-Artikel für Informationen durchführen hier . Dies erfordert einige Kenntnisse und Geld und Zeit zum Einrichten. Große Unternehmen wie Google und Apple verwenden die Technologie, die sie selbst geschrieben haben, und der Versuch, sie nachzuahmen, ist eine teure und übertriebene Lösung. Wenn Sie Lastenausgleich durchführen, möchten Sie etwas verwenden, das viel kleiner ist als das, was sie tun.

Sie können auch Cloud-Server zum Hosten Ihrer Videos oder anderer Inhalte verwenden. Sie werden als Content Distribution Networks (CDNS) bezeichnet und können jetzt viel mehr als nur einfaches Datei-Hosting. Der Vorteil dieser Websites besteht darin, dass sie Technologien wie die von Google zum Erstellen eines Lastenausgleichs verwenden und Ihnen den Service verkaufen, der auf genau der Menge von Daten oder Zyklen basiert, die Sie auf ihren Servern verbrauchen. Dies bedeutet, dass Ihre Kosten mit der Nutzung mitwachsen. Solange Sie über ein gutes Einnahmemodell verfügen, stehen Ihnen immer Mittel zur Verfügung, um den Service zu bezahlen. Einige großartige Unternehmen für kleinere Benutzer sind:

Sie sind viel mehr als diese drei. Der andere Vorteil von CDN ist, dass sich Ihre Inhalte nicht auf einem Server befinden, sondern in einem weltweiten Netzwerk. Die CDNs tun dies, damit der Inhalt immer von dem Server kommt, der dem Benutzer am nächsten ist. Das Einrichten von mehr als 2 Servern an einem Standort bietet niemals die gleichen Vorteile für die Zustellgeschwindigkeit wie ein CDN.

Eigentlich arbeite ich für keine dieser Firmen. Ich habe die Webdienste von Amazon für das Videohosting auf der Website meines Unternehmens verwendet und dies war ein enormer Vorteil.

6
Ben Hoffman

Eine kostenlose Load-Balancer-Software wie ZenLoader würde den Trick machen. Es ist eine Open-Source-Software, die Sie nur bezahlen, wenn Sie Unterstützung benötigen.

Ich höre, es wird Ihren Bedarf decken, wenn Sie die Server bereits gekauft haben.

1
liam

Ich würde Scalr auf ec2 verwenden, um Ihre Server automatisch zu überwachen. Es ist Open Source und funktioniert sehr gut mit AWS-Diensten. Wenn Ihr App-Server also von zu viel Verkehr heimgesucht wird, wird Scalr automatisch weitere Server einschalten und die Last für Sie ausgleichen. Es sichert auch automatisch Ihre Datenbanken, wenn man herunterfährt und Slaves als Master hochzieht. So werden Ihre Anwendungsserver und Datenbankserver nach Bedarf überwacht und skaliert.

Das Skalieren von Websites ist schwierig und teuer. Mithilfe von Cloud Computing skaliert Scalr automatisch Ihre Website-Infrastruktur: Es skaliert Ihre Datenbank, skaliert Ihre App-Server und fügt sogar Lastausgleichs- und Caching-Server hinzu und konfiguriert diese!

http://code.google.com/p/scalr/

1
Anagio