Ich habe folgendes Problem: Ich habe eine verteilte Anwendung (3 geografisch verteilte Knoten), die auf Anfrage große Datensätze zurückgibt. Um den Netzwerkverkehr zu reduzieren, muss ich die Client-Anfrage an die nächstgelegene Instanz der verteilten Anwendung weiterleiten. Ich habe über mehrere Optionen nachgedacht, aber zu jeder davon habe ich Fragen, zu denen ich gerne Ihre Meinung hören würde:
Option 1: Verwenden Sie DNS zur Auflösung in mehrere IP-Adressen. Beispiel: - Wenn ich von einem britischen Computer aus den Anruf an server.copmany.com tätige, wird dieser über DNS in die britische IP-Adresse des betreffenden Systems aufgelöst. - Wenn ich von einem US-Computer aus den Anruf an server.copmany.com tätige, wird dieser über DNS in die US-IP-Adresse des betreffenden Systems aufgelöst.
Frage: Ist es möglich, DNS für so etwas zu konfigurieren?
Option 2: Verwenden Sie einen Load Balancer, der die IP-Adresse zum nächstgelegenen Server auflösen kann.
Frage: Obwohl ich denke, dass dies möglich ist, kann ich es mir nicht leisten, dass die Antwort über den Load Balancer zurückgeht, sondern direkt an das aufrufende System gesendet wird.
Option 3: Sind Sie auf eine andere Lösung für diese Art von Problemen gestoßen?
Danke, Mike
Antwort1
Ich würde Option Nr. 1 wählen.
Ich weiß nicht, welchen DNS-Server Sie verwenden, aber dies ist mit BIND mit GeoIP-Unterstützung und mehreren Ansichten für verschiedene Benutzer aus verschiedenen Ländern möglich. Wenn Sie „BIND GeoIP“ googeln, erhalten Sie eine Reihe von Tutorials zur Einrichtung.
Ansonsten gibt es Drittanbieterdienste (Stichworte: „Managed DNS, Geolocation“), die diesen Service anbieten.
Antwort2
Wenn es nur HTTP ist, könnten Sie eine 301-Weiterleitung an die entsprechende Site bereitstellen, anstatt Geo-DNS verwenden zu müssen, was wahrscheinlich einfacher ist.
Eine Sache, die wahrscheinlich nicht gut funktionieren wird, ist Anycast. Es sieht zwar gut aus, kann aber (ohne erhebliche Unterstützung) nicht mit Fällen umgehen, in denen ein Client zwischen Knoten wechselt.
Antwort3
Über DNS
Ich weiß mit Sicherheit, dass Bind Ansichten unterstützt, weil ich sie schon einmal verwendet habe. Andere Server können das auch. Mit einer Ansicht stellen Sie basierend auf der anfordernden IP-Adresse beliebige Zoneninformationen bereit -http://www.zytrax.com/books/dns/ch7/view.html
Verwenden Sie Round-Robin-DNS, um eines von drei IPS aufzulösen. Dabei ist es jedoch egal, woher die Anfrage kam.
Ich habe dies beim Googeln gefunden (http://www.dnsmadeeasy.com/services/global-traffic-director/) - Vielleicht finden Sie es interessant