El problema que tengo es el siguiente: tengo una aplicación distribuida (3 nodos geográficamente dispersos), que, previa solicitud, devuelve grandes conjuntos de datos. Para reducir el tráfico de la red, necesito dirigir la solicitud del cliente a la instancia más cercana de la aplicación distribuida. Estaba pensando en varias opciones, pero para cada una de ellas tengo las preguntas, las cuales agradecería vuestras opiniones:
Opción 1: utilizar DNS para resolver en varias direcciones IP. Por ejemplo: - Si hago una llamada desde la máquina del Reino Unido al servidor.copmany.com - DNS para resolver esto en la dirección IP del sistema en cuestión del Reino Unido. - Si hago una llamada desde la máquina de EE. UU., al servidor.copmany.com - DNS para resolver esto en la dirección IP de EE. UU. del sistema en cuestión.
Pregunta: ¿Es posible configurar DNS para algo como esto?
Opción 2: utilizar el equilibrador de carga, que puede resolver la dirección IP al servidor más cercano.
Pregunta: Aunque creo que esto es posible, lo que no puedo permitirme es la respuesta de regresar a través de Load Balancer, sino directamente al sistema de llamada.
Opción 3: ¿Ha encontrado alguna otra solución para este tipo de problemas?
gracias mike
Respuesta1
Yo elegiría la opción número 1.
No sé qué servidor DNS estás usando, pero esto se puede hacer con BIND con soporte GeoIP y múltiples vistas para diferentes usuarios de diferentes países. Si busca en Google "BIND GeoIP", obtendrá un montón de tutoriales sobre cómo configurarlo.
De lo contrario, existen servicios de terceros (palabras clave: "dns administrado, geolocalización") que ofrecen este servicio.
Respuesta2
Si es solo HTTP, podría enviar un 301 al sitio apropiado en lugar de tener que hacer geo-DNS, lo cual probablemente sea más simple.
Una cosa que probablemente no funcionará bien es anycast, que aunque parezca bueno, no puede (sin una ayuda significativa) manejar casos en los que un cliente cambia de nodo.
Respuesta3
A través de DNS
Sé con certeza que Bind admite vistas porque las he usado antes. Otros servidores también pueden hacerlo. Con una vista, usted proporciona cualquier información de zona que desee en función de la dirección IP solicitante:http://www.zytrax.com/books/dns/ch7/view.html
Utilice DNS por turnos para resolver uno de los tres IPS. Sin embargo, a esto no le importaría de dónde vino la solicitud.
Encontré esto buscando en Google (http://www.dnsmadeeasy.com/services/global-traffic-director/) - Quizás te resulte interesante