Pregunta

Soy un codificador de Java y no estoy muy familiarizado con el funcionamiento de las redes (aparte de las conexiones UDP / TCP básicas)

Digamos que tengo servidores que se ejecutan en máquinas en los EE. UU., Asia, América Latina y Europa. Cuando un usuario solicita un servicio, quiero que su solicitud vaya al servidor más cercano a ellos.

¿Es posible para mí tener una dirección: mycompany.com, y de alguna manera obtener las solicitudes enrutadas al servidor apropiado? Aparentemente, cuando alguien va a cnn.com, recibe las fotos, videos, etc. de un servidor cercano. Francamente, no veo cómo funciona eso.

Por cierto, mis servidores no sirven páginas web, sirven otros servicios como datos del mercado de valores ... en caso de que sea relevante.

Como soy programador, me interesa saber cómo se haría en el software. Dado que esto es poco más que una curiosidad ociosa, los consejos sobre productos o servicios comerciales no serán muy útiles para comprender este problema :)

¿Fue útil?

Solución

Un enfoque simple sería mirar el primer byte (Clase A) de la dirección IP que ingresa en la solicitud de DNS UDP y luego basarse en que usted podría entregar la IP geolocalizada correcta.

Otros consejos

Otro enfoque sería un poco más complicado. En lugar de usar el servidor que está geográficamente más cerca del usuario, puede usar el servidor que tenga la latencia más baja para ese usuario.

La latencia más baja proporcionará velocidades de transferencia más rápidas y será más fácil de calcular que la ubicación geográfica.

Para una visión mucho más detallada, consulte este artículo sobre CDN (preste atención a la Sección de Tecnología):

Red de entrega de contenido - Wikipedia

Estos son los tipos de redes que utilizan los sitios grandes para distribuir su contenido a través de la red (Akamai es un ejemplo popular). Como puede ver, las cosas pueden complicarse bastante rápidamente con CDN que tienen sus propios protocolos propietarios, etc.

Actualización: No vi el descargo de responsabilidad sobre soluciones comerciales al final de la publicación original. Dejaré esto para aquellos que puedan encontrarlo interesante.

-

Eche un vistazo a http://ultradns.com/ . A gestionado Un servicio DNS como ese puede ser justo lo que necesita para lograr lo que está buscando.

Amazon.com, Forbes.com, Oracle, todos los usan ...

Cita de http://ultradns.com/solutions/traffic.html :

  

La solución UltraDNS Traffic Management proporciona un conjunto de herramientas que permiten a los administradores de TI definir configuraciones de equilibrio de carga para servidores de contenido que residen en una o más ubicaciones geográficas. Traffic Management Solution gestiona el tráfico dirigido a los servidores cambiando dinámicamente las respuestas a las solicitudes de DNS. El equilibrio de carga se realiza en función de métricas dinámicas obtenidas de los servidores host de forma continua. La solución UltraDNS Traffic Management no es una sola aplicación, sino que combina las capacidades de varios sistemas UltraDNS existentes para controlar el tráfico, administrar fallas del sitio y optimizar los sistemas de contenido web.

Un enfoque es, como Jeff mencionó, usar la dirección IP: http: //en.wikipedia. org / wiki / Geolocation_software

En mi experiencia, esto es preciso para la ciudad relativamente grande más cercana (al menos en los EE. UU.). Hay varias bases de datos abiertas para ayudar en esto (ver el enlace wiki). Luego, puede generar etiquetas de imagen y descargar enlaces y demás según esta información.

En cuanto a la ubicación del servidor más cercano, estoy seguro de que puede pensar en algunas formas de hacerlo. Por ejemplo, si el mejor retorno que puede obtener es una ciudad importante, puede buscar esa ciudad en una lista de Latitud / Longitud y calcular el servidor más cercano en función de eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top