
Tenemos un grupo de máquinas (alrededor de 50 y en aumento). Cada máquina tiene un índice de búsqueda que debe actualizarse varias veces al día. Actualmente actualizamos el índice en cada máquina individualmente, pero lo ideal sería actualizarlo en una máquina y luego sincronizar los archivos nuevos con el resto del clúster. Inicialmente usamos rsync para manejar esto, pero a medida que creció la cantidad de máquinas, se hizo evidente que esta solución no se puede escalar. Acabo de empezar a investigar sobre transferencias de archivos de multidifusión. ¿Alguien con alguna experiencia aquí que pueda sugerir algunos lugares para buscar?
Respuesta1
Esta fue una pregunta de una entrevista para mí una vez...
Opciones de multidifusión:
BitTorrent
Otros protocolos que utilizan mensajería pub/sub.
Otro enfoque... Utilice un árbol de distribución:
envíe a N hosts, quienes a su vez enviarán a N hosts; y baje el árbol de esa manera. Por supuesto, eso requeriría algo de trabajo de desarrollo de su parte, pero posiblemente sea el enfoque más escalable.
La mayor parte de esto depende de cuántos sistemas necesitará atender, el tamaño del índice y su infraestructura de red.
Respuesta2
Es posible que le resulte mejor utilizar un sistema de archivos compartido, especialmente si la aplicación que utiliza el índice de búsqueda (es decir, en el extremo de destino) utiliza solo lectura para el índice de búsqueda. De esa manera, gran parte de la complejidad la resuelve usted.
Respuesta3
Prueba bittorrent. Está diseñado para distribuir archivos rápidamente en varios hosts. La multidifusión hará que su ingeniero de redes grite de dolor :)
Respuesta4
Recomiendo mirar git. Lo he usado en el pasado para realizar cambios en un servidor y eliminarlos o realizar trabajos cron en los otros servidores para eliminarlos. Hay bastante flexibilidad con la solución.