2009-06-24 24 views
5

Soy un codificador de Java y no muy familiarizado con cómo las redes de trabajo (con excepción de las conexiones TCP/UDP básicos)cómo enviar solicitudes de red al servidor (geográficamente) más cercano

Decir que tengo los servidores que se ejecutan en máquinas de Estados Unidos, Asia, América Latina y Europa. Cuando un usuario solicita un servicio, quiero que su solicitud vaya al servidor más cercano.

¿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 a ellos. Francamente, no veo cómo funciona eso.

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

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

Respuesta

0

Un enfoque simple sería mirar el primer byte (Clase A) de la IP dirección que ingresa a la solicitud UDP DNS y luego se basa en que puede entregar la IP geo-ubicada correcta.

+0

SO, digamos que viene una solicitud del cliente C a mi servidor "proxy" P, veo que el servidor X está más cerca de C, por lo que reenviaré su solicitud a X. ¿Pero eso no significa que todo el tráfico entra en proxy P, ¿luego lo redirecciono a los servidores más cercanos? Si P está en Nueva York, ¿significa eso que el tráfico de Tokio llega a Nueva York, entonces NY reenvía cada paquete al servidor más cercano en Beijing? ¿Cómo puede el proxy decirle a Tokio que hable con Pekín y luego salir del circuito? – Shahbaz

+4

La primera vez que una C quiere conectarse a su servidor, hará una consulta DNS a su DNS local. El servidor DNS de su ISP local no tendrá la dirección IP, por lo que el DNS del ISP enviará una solicitud DNS UDP a su servidor de nombres. Para simplificar, suponga que el DNS de su ISP está cerca de él. Luego, basándose en la dirección IP de origen de la consulta DNS, decida qué IP específica enviar de vuelta para su consulta DNS. Esta es una cosa de una vez por sesión. A partir de ese punto, el cliente se conecta directamente a la IP. No se necesita reenvío –

+0

La segunda respuesta de Jeff (una con información de DNS) es la más cercana a lo que intentaba entender. No obtengo todo, pero tengo algunas palabras clave más relevantes para google. Aparentemente, no puedo marcar comentarios no parentales. ¡Gracias! – Shahbaz

0

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

La menor latencia 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, echa un vistazo a este artículo sobre la CDN (prestar atención a la Sección de Tecnología):

Content Delivery Network - Wikipedia

Estos son los tipos de redes que los sitios grandes utilizan para distribuir sus contenidos sobre la red (Akamai es un ejemplo popular). Como puede ver, las cosas se pueden complicar bastante rápido con CDN que tienen sus propios protocolos propietarios, etc.

0

Actualización: No vi la exención de responsabilidad sobre soluciones comerciales al final de la publicación original. Dejaré esto para aquellos que lo encuentren de interés.

-

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

Amazon.com, Forbes.com, Oracle, todos ellos utilizan ...

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

solución

UltraDNS de Gestión de Tráfico ofrece un conjunto de herramientas que permite a los administradores para definir el equilibrio de carga configuraciones para servidores de contenido que residen en una o más ubicaciones geográficas. La solución de gestión de tráfico gestiona el tráfico dirigido a los servidores mediante el cambio dinámico de las respuestas a las solicitudes de DNS. El equilibrio de carga se realiza en función de las métricas dinámicas obtenidas de los servidores host sobre una base de monitoreo continuo.La solución de gestión de tráfico UltraDNS no es una aplicación única, sino que combina las capacidades de varios sistemas UltraDNS existentes para controlar el tráfico, gestionar las fallas del sitio y optimizar los sistemas de contenido web.

0

Un enfoque es, como se ha mencionado Jeff, utilizando la dirección IP: http://en.wikipedia.org/wiki/Geolocation_software

En mi experiencia, esto es precisa a la ciudad más cercana relativamente grande (en los EE.UU. por lo menos). Hay varias bases de datos abiertas para ayudar en esto (ver el enlace de la wiki). Luego puede generar etiquetas de imagen y descargar enlaces y tal basado en 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 la mejor rentabilidad 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.

Cuestiones relacionadas