У меня настроен HAProxy для поддержки приложения TCP между двумя серверами для обеспечения высокой доступности. Таким образом, у меня настроен HAProxy с одним сервером в качестве основного, а другой - в качестве резервного. Переход на резервный сервер практически идеален, однако в настоящее время мы видим одну проблему.
Когда основной сервер выходит из строя, клиентское соединение сбрасывается, и когда клиент пытается повторно подключиться, он подключается к резервному серверу, как и должно (вы можете видеть, как текущие "Cur" соединения переходят от backendA к резервной backendB системе [цвет синий], когда A опускается)
Проблема в том, что, когда основной сервер возвращается в режим онлайн, клиент по-прежнему поддерживает соединение с резервным сервером:
Из-за особенностей работы приложения сохранение соединения с этим сервером резервного копирования не идеально. Есть ли способ закрыть соединения с резервным сервером, когда основной сервер снова заработает? Сброс этого соединения приведет к повторному подключению клиента к основному серверу и устранению нашей проблемы.
Блок этого раздела в моей текущей конфигурации (haproxy.cfg) выглядит следующим образом:
backend ldm_back
server backendA 172.31.xxx.xxx check port 388
server backendB 172.31.yyy.yyy check port 388 backup
Вам, вероятно, понадобится довольно новая версия HAProxy, но вы можете сделать это с помощью этот.