Frage

Ich bin ein Java-Coder und nicht sehr vertraut mit, wie Netzwerke funktionieren (außer Grund UDP / TCP-Verbindungen)

Sagen, ich habe Server auf Maschinen in den USA, Asien, Lateinamerika und Europa aktiv. Wenn ein Benutzer einen Dienst anfordert, mag ich ihre Anfrage an den Server gehen, die sie am nächsten.

Ist es möglich für mich, eine Adresse zu haben: mycompany.com, und irgendwie Anforderungen an den entsprechenden Server weitergeleitet werden? Offenbar, wenn jemand auf cnn.com geht, erhalten sie die Bilder, Videos usw. von einem Server in der Nähe zu ihnen. Ehrlich gesagt, ich sehe nicht, wie das funktioniert.

Übrigens, meine Server dienen nicht Web-Seiten dienen sie andere Dienste wie Börsendaten .... nur für den Fall, dass relevant ist.

Da ich ein Programmierer bin, ich bin interessiert zu wissen, wie man es in der Software tun würde. Da dies kaum mehr als eine Leerlauf Neugier ist, Hinweise auf kommerzielle Produkte oder Dienstleistungen nicht sehr hilfreich sein für das Verständnis dieses Problem:)

War es hilfreich?

Lösung

Ein einfacher Ansatz wäre beim ersten Byte suchen (Klasse A) von der IP-Adresse in die UDP-DNS-Anforderung kommt und dann basierend aus, dass Sie die richtigen geo-located IP liefern könnten.

Andere Tipps

Ein weiterer Ansatz wäre ein wenig komplizierter. Statt den Server zu verwenden, die geographisch am nächsten zu dem Benutzer ist, können Sie den Server, der die niedrigste Latenz für den Benutzer hat.

Die geringere Latenz wird eine schnellere Übertragungsgeschwindigkeiten, während sie leichter als geografische Lage zu berechnen.

Für eine viel detaillierteren Blick, lesen Sie in diesem Artikel über CDNs aus (achten Sie auf die Technologie Abschnitt):

Content Delivery Network - Wikipedia

Dies sind die Arten von Netzwerken, die die großen Websites, deren Inhalte über das Netz zu verteilen verwenden (Akamai ist ein beliebtes Beispiel). Wie Sie sehen können, können die Dinge ziemlich schnell ziemlich kompliziert bekommen mit CDNs mit ihren eigenen proprietären Protokolle, etc ...

Update: Ich habe nicht die rechtlichen Hinweise zu kommerziellen Lösungen am Ende des ursprünglichen Beitrags sehen. Ich werde dies für diejenigen, überlassen, die es von Interesse sein könnten.

-

Schauen Sie sich auf http://ultradns.com/ . Ein verwaltetes DNS-Dienst wie das sein kann, was Sie brauchen, um zu erreichen, was Sie suchen.

Amazon.com, Forbes.com, Oracle, alle nutzen sie ...

Zitat von http://ultradns.com/solutions/traffic.html :

  

UltraDNS Traffic Management-Lösung bietet eine Reihe von Tools ermöglicht es IT-Administratoren Load-Balancing-Konfigurationen für Content-Server zu definieren, in einem oder mehreren geografischen Standorten befinden. Die Traffic-Management-Lösung verwaltet Datenverkehr an die Server unter der Regie von dynamisch die Antworten auf DNS-Anfragen zu ändern. Load Balancing basiert auf dynamischen Metriken von den Host-Servern auf einer kontinuierlichen Überwachung Basis erhalten durchgeführt. Die UltraDNS Traffic Management Lösung ist nicht eine einzelne Anwendung, sondern kombiniert die Fähigkeiten mehrerer bestehenden UltraDNS Systeme Verkehr zu steuern, Standortausfälle verwalten und Web-Content-Systeme optimieren.

Ein Ansatz ist, wie Jeff erwähnt, die IP-Adresse verwenden: http: //en.wikipedia. org / wiki / Geolocation_software

In meiner Erfahrung ist dies genau zur nächsten relativ großen Stadt (in den USA zumindest). Es gibt mehr offene Datenbanken in diesem (siehe Wiki-Link) zu unterstützen. Dann können Sie Image-Tags und Download-Links und solche auf Basis dieser Informationen generieren.

Wie bei den nächstgelegenen Server lokalisieren, ich bin sicher, dass Sie ein paar Möglichkeiten denken können, es zu tun. Zum Beispiel, wenn die beste Rückkehr Sie größere Stadt ist erhalten können, können Sie diese Stadt in einer Liste von Breite / Länge Nachschlag und den nächsten Server berechnen auf dieser Grundlage.

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