Назад | Перейти на главную страницу

Возможен ли общий сеанс / кластер Tomcat между двумя компьютерами?

У меня есть установка из нескольких серверов Tomcat, распределенных между несколькими серверами, и на всех работает одно и то же. Apache находится поверх Apache и балансировщик нагрузки перед серверами Apache. Я хочу объединить Tomcats в кластер с использованием общего сеанса, чтобы минимизировать время простоя и прерывание работы пользователя при развертывании приложений.

Я знаю, что кластеризация работает на одном сервере, но можно ли настроить Tomcat таким образом, чтобы он разделял сеансы между серверами на разных машинах?

=> Server 1
==> Apache 1
===> Tomcat 1

=> Server 2
==> Apache 2
===> Tomcat 2

Когда Server / Tomcat 1 будет отключен, пользователи и их сеансы будут переведены на Server / Tomcat 2 и наоборот.

Я работаю над настройкой того же, приведенная ниже ссылка от Apache дает обзор того, как этого добиться:

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

В основном это состоит из двух частей:

1) Создание сериализуемых объектов сеанса

2) Настройка конфигурации кластера в tomcat (server.xml).

В зависимости от того, какой менеджер tomcat вы используете, вам может потребоваться включить многоадресную рассылку на ваших узлах, чтобы обеспечить связь между узлами. Репликация сеанса выполняется tomcat с помощью этих многоадресных запросов. Я видел много людей, использующих этот подход, и он сработал для них (кажется, стандартный / простой способ сделать это).

Также вот подробный пост в блоге о том же - всего 5 частей, с некоторыми видео.

http://www.ramkitech.com/2012/10/tomcat-clustering-series-simple-load.html

P.S:

Я использую тот же подход для той же проблемы с двумя узлами tomcat. Я столкнулся с небольшой проблемой, которая задокументирована ниже. Если у вас все же получится / вы столкнетесь с аналогичной проблемой, взгляните на это

Проблема репликации сеанса Tomcat

Взгляни на Teracotta для веб-сессий.

Используйте быстрый и надежный плагин веб-сеансов Terracotta, чтобы получить преимущества масштабируемости веб-архитектуры без сохранения состояния без перегрузки вашей базы данных или перезаписи приложения. Terracotta for Sessions работает с вашим любимым веб-фреймворком и вашими собственными объектами сеанса.

В руководство по веб-сессиям перечисляет пять простых шагов, которые вы должны сделать, чтобы оценить продукт (FOSS).

Вы можете сохранять сеансы в базе данных, чтобы они были доступны для обоих котов. Или храните их в общем каталоге между котами.

Вы можете сохранять сеансы в memcached, который используется обоими серверами. Это должно обеспечить лучшую производительность и масштабируемость, чем использование общих сеансов в базе данных или общего каталога между n серверами.