O balanceamento de carga round-robin simples quebra o IMAP. Dois backends atendendo o mesmo usuário geram índices conflitantes, mensagens sumidas e divergências de UIDVALIDITY que fazem o cliente baixar caixas de e-mail inteiras de novo.
Função do director: associar cada usuário a exatamente um backend por vez, com failover que preserva essa associação.
[ Client ] → [ Director cluster ] → consistent-hashes user → [ Backend N ]
Dois formatos de implantação:
- Proxy só com director: o director roda em hosts dedicados e faz proxy de IMAP/POP3 para os backends.
- Director no backend: cada backend roda o director. Mais simples, menos peças móveis.
A maioria das instalações em produção escolhe a nº 2.
Peças necessárias:
- Todos os backends compartilham a mesma autenticação (o passdb retorna o mesmo userdb).
- Todos os backends montam o mesmo armazenamento de e-mails (NFS, GlusterFS, Ceph ou replicação).
- Os directors formam um cluster entre si via
director_servers.
Entre para acompanhar o que você já leu.