Frage

ich an einem Projekt gerade arbeite waren wir haben Nummer (5 im Moment) von Servern auf der ganzen Welt zu verbreiten. Clients stellt eine Verbindung zu einem dieser Server über einen zentralen Broker. Wir kennen das Ursprungsland des Kunden, aber sonst nichts. Wir haben die volle Kontrolle über den Server, so dass wir alle Informationen haben, können wir auf diejenigen brauchen. Wir haben nicht die Kunden kontrollieren, sie haben wie nach Standard durch diesen Broker zu verbinden.

Es ist wichtig, dass der Makler einen Server nimmt die geringe Latenzzeiten hat so mit den Daten, wir haben ich denke Nähe unserer nur Kriterien ist.

Die erste Idee, die in den Sinn kam, ist den Client von jedem Server Pingen, aber wir haben keine IP haben, nur das Land.

Andere Idee, die wir hatten, ist ein Wurzelknoten in jedem Land von jedem Server pingen. Das Problem gibt es in jedem Land einen Wurzelknoten zu finden.

Haben Sie eine Idee haben, wie / Lookup berechnen Nähe zwischen „Länder“? Haben Sie Erkenntnisse oder Ideen, wie dieses Problem auf eine andere Weise zu lösen?

War es hilfreich?

Lösung

Ich denke, der Begriff, den Sie brauchen, ist „geografische Load Balancing“. Die meisten der großen Load-Balancing-Anbieter haben hier eine Lösung - Ihr Broker diese nutzen könnten

.

geographischen Lastausgleich einige nützliche bekommt Suche Ergebnisse.

Andere Tipps

Das ist heikel, um so mehr, als viele sich vorstellen, aber ich fühle mich gibt es eine RICHTIG Antwort.

Natürlich ist die naive (aber cool) Lösung des Kunden IP prüft, ist dies ein guter Anfang, aber in der „realen Welt“ Geolokalisierung ist nicht alles ...

Sie haben soeben gefragt für " mit geringer Latenz ", was bedeutet, Sie tun sollten, ping zwischen Servern und Clients und weisen dementsprechend. Ein sehr gutes Beispiel für dieses Problem, das über betrifft mich persönlich viele Male hat, ist, dass ich in Japan arbeiten, und ein Server sagt in Taiwan viele falten ist für mich näher an einen Server in den USA. ABER , die Latenzzeit zwischen Japan und den USA ist viel kleiner (besser response) klappen als mit Taiwan, da die Kabel und Router und was-haben-Sie die connect Japan-Taiwan ist nicht so gut wie jene zwischen Japan-USA . Also, wenn Sie mich nach Taiwan verbunden, weil Sie meine IP-Figur näher, dann würden Sie mir eine sehr große Ungnade es tun. Neben ein Ping und tatsächlicher kleiner Test beim Start ist einfacher als eine ständig aktualisierte Datenbank Geolokalisierung hält

Die beste Lösung für das nennt man BGP Anycast ( Link zu einer Präsentation ). Es ist der Grundstein aller modernen CDNs.

Mit BGP Anycast , werden mehrere unterschiedliche Server auf der ganzen Welt verbreitet und zum Internet über BGP angekündigt mit der gleiche IP . Dann funktioniert das Internet der Magie -. Wie üblich, der Netto-Routen Verkehr zu, dass gleicher IP über den kürzesten Weg, im Wesentlichen den nächsten Server (von einer Netzwerktopologie Perspektive) Auswählen für jeden Benutzer

Leider kann man nicht nur etwas über BGP melden Sie sich - nur große Netzwerke (normalerweise Datencenter) kann das tun. Aber erschwingliche Lösungen zur Verfügung, die meisten davon basieren auf DNS Anycast (dh die Lösung auf verschiedenen Web-Server-IP-basierend auf den Client-Standort) - das ist nicht perfekt, aber ist in vielen Fällen ausreichend (Beispiele: dnsmadeeasy Route 53, edgedirector, und praktisch jeder billiger CDN - cloudflare, maxcdn, Cloudfront usw.). Es gibt auch Lösungen, die echte BGP Anycast tun, das heißt eigentlich HTTP-Verkehr über Anycast (z cachefly) dienen oder können Sie es tun (z hostvirtual - nicht billig). Diese könnten auch eine interessante Lektüre sein.

Paul hat es, Sie wollen Ausgleich geografische Last - aber ich werde hinzufügen, dass die beste Wahl, wenn es überhaupt eine Option ist, ist, jemanden zu finden, die darin spezialisiert hat und auf sie werfen Geld. Es ist in der Klasse von Problemen, die viel härter zuverlässig zu lösen, als es zuerst erscheint.

Pingen sie und Kommissionierung der mit der niedrigsten Latenzzeit klingt gut, aber ich habe das Gefühl, es wird nicht skaliert (was passiert, wenn Sie 100 haben, oder 1000?) - so vielleicht eine andere Lösung ist besser? Es gibt viele Anbieter da draußen mit Systemen, die diese gerade tun; DNS Anycast ist auch recht weit verbreitet.

Wenn Sie gerade sie ping haben, müssen Sie mehrere Pings an jeden (idealerweise parallel) tun, um sicherzustellen, dass Sie eine mit wirklich niedrigeren Latenzzeiten sind Kommissionierung statt Topf Glück.

Auch würden Sie wahrscheinlich eine gewisse Art und Weise wollen Gewichte, um sie schließlich hinzuzufügen, wenn das Verkehrsaufkommen sehr hoch sind.

Schließlich würden Sie eine Möglichkeit, wollen sich wie administrativ einige von ihnen zu markieren (für die Wartung.) - aber vielleicht können Sie dies tun, um Ihre gebrochen einfach nicht werben diejenigen durch, die sind zur Zeit nicht verfügbar

Pinging wird nicht funktionieren. Die meisten der Kunden hinter einem Gateway und / oder Firewall wäre, und Ihre Ping-Pakete werden nicht durchkommen. Genehack sagte sie am besten. Sie müssen Server Load Balancing, und nur den geografischen Ansatz vielleicht nicht der beste Weg, immer darüber zu gehen. Bessere Geld auf jemanden zu werfen, die bei der Bereitstellung von SLB-Lösungen spezialisiert hat.

Okay, so ein paar schnellen Gedanken. Ich war einer der Gründer von Digital Envoy - sie geografische IP Intelligenz zu tun. Ich verließ das Unternehmen vor ein paar Jahren, aber vor etwa 6 Jahren baute ein gemeinsames Produkt mit Coyote Point Systems , die genau diese Funktionalität haben - geografische Basierten Lastausgleich. Sicher, es gibt Grenzfälle (das Taiwan / China Beispiel in diesem Thread erwähnt), die nicht automatisch arbeiten kann, aber das Produkt erlaubte der Benutzer zu bestimmen, wo ein Verkehr Land gehen würde. Also, wenn Sie, dass Taiwan entschieden am besten war aus den USA dient, wäre es auf diese Weise geschoben werden.

Leider war die Nachfrage nach der Lösung nicht so groß wie wir und das Produkt hat gehofft, glaube ich, nicht mehr unterstützt. Ich würde vorschlagen, kontaktieren Coyote Point und sehen, ob sie eine gleichwertige Lösung für Sie zur Verfügung stellen kann. Wenn nicht, ich glaube, sie einige Ideen haben, wie was gehen über das Tun Sie tun möchten.

Eine weitere Option, je nachdem, was Sie dienen müssen, ist so etwas wie Cloudfront-Dienst Amazon zu verwenden. Natürlich, wenn Sie Kunden müssen eine App und nicht statische Dateien verbinden, die für Sie nicht funktionieren.

BTW, vollständige Offenlegung - ich bin nicht nur ein Gründer von Digital Envoy, aber ich gegenwärtig werden sie auf dem Brett von Coyote Point.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top