Em nossa loja, selecionamos repmgr e pgbouncer em vez de pgpool. O repmgr possui algumas ferramentas interessantes para configurar e manter o cluster de servidores de banco de dados replicados. No nosso caso, 1 mestre e 2 escravos (um failover e um teste de desempenho de leitura ao vivo que podem se tornar o failover do novo mestre). O pgpool tem problemas com alterações na configuração, na maioria dos casos você precisa reiniciar o serviço e, portanto, tem algum tempo de inatividade. Este é um problema quando você precisa da disponibilidade 24x7x365.
repmgrd (o deamon) ajuda a selecionar o novo mestre após um failover, você realmente não quer uma situação de cérebro dividido. Temos um endereço IP virtual para o banco de dados mestre, o banco de dados que é mestre naquele momento. Quando outro servidor se torna mestre, esse é o único servidor que usa esse endereço. Todo servidor de banco de dados também possui seu próprio endereço IP para consultas somente leitura.
O repmgr é mantido pelos mesmos caras que criaram a replicação de streaming, para que eles saibam do que falam. A versão 2.0 está prestes a ser lançada.
Prepare-se para a pior situação, faça alguns testes sérios puxando alguns plugues de energia e de rede! Quando algo dá errado, muitas outras coisas já deram errado e o morderão pelas costas quando você não puder pagar.
A replicação é uma coisa, um failover de trabalho após alguns problemas sérios, é outra coisa.