Я новичок в HAProxy, поэтому у меня может быть очевидный ответ, но я не смог его найти.
Рассмотрим эту установку:
Клиент открывает соединение через веб-сокет с HAProxy, который выбирает веб-приложение с помощью циклического перебора, скажем, выбрано WebApp1. Соединение с веб-сокетом остается на WebApp1 и туннелируется через HAProxy.
Если WebApp1 выходит из строя, клиент получает отключение, повторно подключается, проходит через HAProxy, который теперь выбирает WebApp2, и соединение с веб-сокетом остается на WebApp2, туннелированном через HAProxy.
Это нормальная установка, верно?
Я хочу спросить, возможно ли, чтобы HAProxy оставил веб-сокет открытым вместе с клиентом, и когда WebApp1 выйдет из строя, прозрачно переместите этот конец соединения в WebApp2 без ведома клиента. Это возможно?
Нет, это невозможно, потому что новый сервер ничего не знает о состоянии предыдущего соединения. WebSocket не имеет состояния без состояния, как UDP или ØMQ. В этом случае клиент должен повторно подключиться.