AFAIK, кластеризация tomcat не поддерживает неприлипающие сеансы.От tomcat docs :
Убедитесь, что ваш loadbalancer настроен на режим слипания сеанса.
Но есть решение (я создал, поэтому вызнаю, что я предвзятый :-)) называется memcached-session-manager (msm), который также поддерживает нелипкие сессии.msm использует memcached (или любой бэкэнд, говорящий по протоколу memcached) в качестве бэкэнда для резервного копирования / хранения сеанса.
В незакрепленном режиме сеансы хранятся только в memcached и больше не в tomcat, так какв случае незакрепленных сеансов хранилище сеансов должно быть внешним (чтобы избежать устаревших данных).
Он также поддерживает блокировку сеансов: в случае множественных сеансов параллельные запросы могут попадать в разные коты и могут изменять сеанс впараллельно, так что некоторые изменения сеанса могут быть перезаписаны другими.Блокировка сеанса позволяет синхронизировать параллельные запросы, поступающие к разным tomcats.
Домашняя страница msm в основном описывает подход с фиксированным сеансом (поскольку он только начался с этого), для подробностей относительно незакрепленных сессийВы можете искать или спрашивать в списке рассылки .
Подробную информацию и примеры, касающиеся конфигурации, можно найти в msm wiki (SetupAndConfiguration) .
Просто чтобы дать вам представление о сложности: вам нужен один или несколько memcached серверов, работающих (или что-то подобное, аналогично memcached) и обновленный tomcat context.xml, подобный этому:
<Context>
...
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:host1.domain.com:11211,n2:host2.domain.com:11211"
sticky="false"
sessionBackupAsync="false"
lockingMode="auto"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
/>
</Context>
Ваш балансировщик нагрузки не нуждается в специальной настройке, поэтому, как только вы это настроите, вы можете приступить к тестированию приложения.