У нас есть HAProxy 1.4, успешно выполняющий липкую маршрутизацию сеанса на основе значения в строке запроса с помощью следующей команды конфигурации.
balance url_param userId
Это отлично работает, и если сервер приложений A выходит из строя, вы можете видеть, что последующие запросы перенаправляются на новый целевой сервер B, что является желаемым поведением.
Однако, если сервер приложений A возвращается в сеть, мы видим, что запросы для определенных пользователей снова направляются туда, что приводит к тому, что пользователи испытывают 2 сброшенных сеанса вместо одного.
Есть ли способ указать HAProxy закрепить запросы для активных сеансов на сервере B на некоторый минимальный период тайм-аута, чтобы запросы возвращались на сервер A только после того, как эти пользовательские сеансы истекли?