2012-03-29 2 views
3

У меня есть N номеров серверов приложений за аппаратным балансиром нагрузки. Теперь я хочу, чтобы эти сессии сервера приложений были известны?сеанс миграции/репликации в tomcat

Если я создаю сеанс на одном сервере приложений, другой сервер приложений не будет знать об этом. После googling я нашел 2 подхода 1) Сгенерируйте случайную строку. Введите эту случайную строку в файлы cookie и сохраните их в таблице Db со временем создания .Очень время, когда запрос входит в эту таблицу db. Но этот труд тяжелый 2) Использовать миграцию сеанса tomcat? Теперь я уверен, что это работает правильно. Правильно ли эта работа работает?

Am используя TOMCAT как мой веб-сервер (Cant использовать другие)

Как я могу настроить для сеанса Tomcat миграции/репликации? Любой учебник?

ответ

1

Репликация сеанса - довольно широкая тема. Вы пробовали встроенную репликацию Tomcat?

http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html

Если это не достаточно хорошо для вас, вы можете посмотреть на коммерческие инструменты, такие как Терракотовая Web Sessions. Или вы можете создать собственный кеш сеанса, например memcached.

1

Я не знаю об аффинности сессии при работе с аппаратным балансиром нагрузки. Однако для сценария, который вы упомянули в соответствии с вашими результатами поиска в Google для первой части, вы можете использовать Memcache вместо базы данных cookie + для уменьшения операции время отклика . Более простой подход при использовании Memcache может быть использован "memcached-session-manager". Настройка и конфигурация просты, как указано на странице http://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration.

Смежные вопросы