Я пытаюсь настроить 2-узловый кластер с помощью Delta Manager для репликации аутентифицированных сеансов. Мы используем HAproxy в качестве балансировщика нагрузки, настроенного для липких сессий. Балансировщик нагрузки добавляет «.s1» и «.s2» к куки-файлу сеанса (только JSESSIONID, без данных).

Чтобы проверить отказоустойчивость, я делаю следующее:

  1. запускать каждый экземпляр tomcat в отдельном VPS
  2. в браузере запустите веб-приложение с доменного имени, назначенного для балансировки нагрузки
  3. аутентифицироваться как администратор через аутентификацию на основе форм tomcat
  4. просматривать журналы, чтобы определить узел, на который балансировщик нагрузки пересылает запросы
  5. взаимодействуйте с webapp, затем завершите работу экземпляра tomcat на узле, указанном в шаге 4.
  6. просмотреть журналы, чтобы подтвердить, что происходит переключение на другой узел
  7. продолжать взаимодействовать с веб-приложением

Шаг 7 не выполняется, так как он вызывает повторную аутентификацию страницы входа в систему. При повторном входе в систему веб-приложение запускается заново (т. Е. Оно не продолжается с того места, на котором оно было остановлено на шаге 5).

Я посмотрел на catalina.out в узле отработки отказа, и он показывает, что «Принципал [admin] установлен на сессию» - но указанный идентификатор сеанса (EA02 ..) отличается от идентификатора сеанса отработки отказа (C20E ...) - и я не знаю, правильно ли это?

Я добавил jvmRoute в оба файла server.xml на основе конфигурации HAproxy "s1" и "s2"

Любые идеи о том, что еще я должен проверить? Нужно ли сериализовать cookie сеанса без данных?

Кроме того, я должен упомянуть, что я вижу много этих сообщений даже ДО того, как я запускаю свое веб-приложение:

FINE: Создан DeltaSession с идентификатором [EBA26338D57AAD6ECD31D29264C925D9.s1] Общее количество = 58

Из файла 2 узла catalina.out:

FINE: Обнаружено аварийное переключение с другим jvmRoute - оригинальный маршрут: [s1] новый: [s2] с идентификатором сеанса [C20E9194B5FF032546C6C408E35511C9.s1]

....

08 февраля 2019 13:10:32 org.apache.catalina.ha.session.JvmRouteBinderValve handleJvmRoute FINE: не удается найти сеанс [{0}]

....

Кроме того, я должен упомянуть, что я вижу много этих сообщений, когда я запускаю tomcat и ДО того, как я запускаю свое веб-приложение:

FINE: Создан DeltaSession с идентификатором [EBA26338D57AAD6ECD31D29264C925D9.s1] Общее количество = 58

0