Um monte de novos arquivos com nomes de arquivos exclusivos regularmente "aparece" 1 em um servidor. (Como centenas de GB de novos dados diariamente, a solução deve ser escalável para terabytes. Cada arquivo tem vários megabytes de tamanho, até várias dezenas de megabytes.)
Existem várias máquinas que processam esses arquivos. (Dezenas, a solução deve ser escalável para centenas.) Deve ser possível adicionar e remover facilmente novas máquinas.
Existem servidores de armazenamento de arquivos de backup nos quais cada arquivo recebido deve ser copiado para armazenamento de arquivo. Os dados não devem ser perdidos, todos os arquivos recebidos devem ser entregues no servidor de armazenamento de backup.
Cada arquivo recebido myst deve ser entregue em uma única máquina para processamento e deve ser copiado para o servidor de armazenamento de backup.
O servidor receptor não precisa armazenar arquivos depois de enviá-los a caminho.
Por favor, informe uma solução robusta para distribuir os arquivos da maneira descrita acima. A solução não deve ser baseada em Java. Soluções Unix-way são preferíveis.
Os servidores são baseados no Ubuntu, estão localizados no mesmo data center. Todas as outras coisas podem ser adaptadas para os requisitos da solução.
1 Observe que omiti intencionalmente informações sobre como os arquivos são transportados para o sistema de arquivos. O motivo é que os arquivos estão sendo enviados por terceiros por diversos meios legados hoje em dia (estranhamente, via scp e via ØMQ). Parece mais fácil reduzir a interface de cluster cruzado no nível do sistema de arquivos, mas se uma ou outra solução exigir algum transporte específico - os transportes herdados podem ser atualizados para esse.