HTTP-балансировка нагрузки HAProxy и отработка отказа сеанса - PullRequest
3 голосов
/ 19 мая 2011

Мы выясняем, возможно ли использовать HAProxy для балансировки нагрузки между несколькими серверами tomcat. Мы хотели бы использовать HTTP для всех запросов и использовать сеансы через cookie-файл JSESSIONID. HAProxy изначально не поддерживает SSL, но мы можем использовать stunnel перед ним.

С учетом этой настройки:

1) Нужно ли использовать липкие сессии (последующий запрос всегда идет к одному и тому же экземпляру tomcat)?

2) Если нам действительно нужно использовать липкие сеансы, то как мы можем решить обновить наш экземпляр tomcat новым развертыванием веб-приложения, не заставляя пользователей выходить из системы (теряя свои сеансы)?

1 Ответ

4 голосов
/ 19 мая 2011

Вам не нужно использовать липкие сессии, но если вы не используете липкие сессии, вам нужно будет использовать решение для общей сессии, как описано в http://tomcat.apache.org/tomcat-7.0-doc/config/manager.html (хранилище сеансов JDBC, вероятно, будет путь) Могу поспорить, что вы могли бы найти код для хранения сессий в Redis или Memcache, но я не выглядел широко.

Как только вы это сделаете, это также решит проблему с обновлением экземпляров, хотя мой опыт не сводился к тому, что обновления веб-приложений автоматически делают недействительными сессии (кажется, что только полные перезапуски делают это). Но мне придется внимательнее взглянуть на это.

...