Я использую сервер Apache HTTP в качестве балансировщика нагрузки, за которым сидят 3 узла приложения. Вот пример конфигурации,
<Proxy "balancer://apicluster">
BalancerMember http://node1.com/api
BalancerMember http://node2.com/api
BalancerMember http://node3.com/api
</Proxy>
ProxyPass /api balancer://apicluster
ProxyPassReverse /api balancer://apicluster
Если один узел выходит из строя и запрос не может его достичь, Apache может направить запрос на работающий узел, чтобы не прерывать работу службы.
Сегодня произошла хитрая проблема, состоящая в том, что один узел находится в неисправном состоянии, но вместо того, чтобы быть полностью недоступным, любой запрос, направленный на узел, просто застрянет там до истечения времени ожидания. Проблема связана с некоторой проблемой инфраструктуры, и сам узел узла не доступен. В этом случае запросы все еще направляются Apache на этот проблемный узел и, в конечном итоге, перестают работать для пользователя. Что я могу сделать в Apache, чтобы избежать этого?