Fala ae glr…estou com um probleminha que alguém já deve ter encarado.
Eu tenho um servidor (JBoss AS 7) que até então rodava em uma máquina junto com o mod_cluster. E neste servidor eu tenho uma pasta onde gravo arquivos como relatórios, imagens e outras mídias.
Recentemente precisei escalar meu JBoss para mais uma máquina. Com isso eu tenho dois diretórios de arquivos, um em cada cluster e não consigo fazer com que o JBOSS-1 acesse os arquivos do JBOSS-2 e vice-versa.
Alguém tem alguma sugestão ? Sem que haja quebra de segurança (deixar as pastas livres) e descartando o uso de banco de dados.
Basicamente você terá uma partição de rede montada em cada nó do cluster. Dessa forma todos acessariam os mesmos arquivos.
Até quando você não tem cluster, usar essa abordagem te dá mais segurança, pois você não junta o serviço de disponibilização dos arquivos com o servidor de aplicações, podendo delegar isso pra um cluster com tolerância a falhas, backups, monitoramento e outras coisas que, se instaladas na máquina do servidor de aplicações, poderiam retirar uma fatia considerável de recursos.
Basicamente você terá uma partição de rede montada em cada nó do cluster. Dessa forma todos acessariam os mesmos arquivos.
Até quando você não tem cluster, usar essa abordagem te dá mais segurança, pois você não junta o serviço de disponibilização dos arquivos com o servidor de aplicações, podendo delegar isso pra um cluster com tolerância a falhas, backups, monitoramento e outras coisas que, se instaladas na máquina do servidor de aplicações, poderiam retirar uma fatia considerável de recursos.[/quote]
Valeu Marcelo, isso resolve o problema e ainda tem vantagens sobre o modo como eu vinha trabalhando,
Você resolveu o problema de uma forma bem diferente da sugerida pelo colega, optando por sincronizar eventualmente os arquivos dentre os nós que rodam sua aplicação. Isso não introduziria a possibilidade de uma requisição ser roteada para uma máquina que ainda não sincronizou um determinado arquivo e causar um FileNotFoundException?
Com certeza existe essa possibilidade. Pro meu caso não tem problema, o período que eu determinei atende ao sistema.
Uma alternativa seri usar o “incrond” ao invés do “unison + cron”. Ele sincroniza toda vez que ocorrer um evento (parametrizado) nas pastas, ou arquivos. Eu tentei usar ele, mas não consegui configurar com sucesso, e acabei optando pelo “unison” mesmo.