Хранение состояния сеанса вне серверов приложений (в вашем случае Tomcat) - очень распространенная и рекомендуемая конфигурация для крупных веб-сайтов. Обычно это делается в соответствии с архитектурным стилем под названием Shared Nothing .
Вы можете хранить свое состояние в нескольких разных местах: db, memcached, коммерческий реплицируемый кеш и т. Д. Все они работают с различными комбинациями компромиссов. Лично у меня был большой успех с memcached. Memcached очень быстрый и стабильный.
Обычно я выбираю простоту и использую N серверов memcache, где N> 1, скажем 2. Когда пользователи входят в систему, серверы приложений подбрасывают монету, чтобы решить, какой сервер хранит состояние пользователей. Файл cookie, отправляемый в браузер, содержит информацию, позволяющую узнать, к какому серверу memcache будет направляться с этого момента. Последующие запросы от браузера выбирают состояние с соответствующего сервера memcache для каждого запроса. В случае сбоя сервера memcache пользователю придется снова войти в систему, так как серверы приложений повторно выбирают новый сервер, но это крайне редко.