Eu queria saber se existe uma maneira com o HAProxy para reenviar um pedido com falha para outro servidor se o servidor original estiver inoperante.
Executamos uma API REST em vários servidores por trás de várias instâncias do HAProxy.
Não há afinidade de equilíbrio, o saldo é feito exclusivamente em round-robin
.
Para atualizar um servidor, podemos apenas reiniciá-lo e, devido a verificações de integridade, o HAProxy geralmente não envia nenhum dado para esse servidor.
MAS: Se o servidor ficar inativo entre duas verificações de integridade e o HAProxy encaminhar uma solicitação HTTP para esse servidor sem saber ainda que está inativo - essa solicitação falha (obviamente).
Existe uma maneira de configurar o HAProxy de tal forma que ele perceba que a conexão foi interrompida e tente novamente em outro servidor?
Ou, pelo menos, faça com que o HAProxy marque esse servidor como não íntegro diretamente, para que possamos perder apenas uma solicitação e não várias durante a transição.
O HAProxy está sendo executado dentro de um contêiner docker e os servidores também são contêineres docker.
Tags high-availability haproxy