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

Как реплицировать данные сеанса apache mod_jk

Можно ли реплицировать информацию о липком сеансе mod_jk на другой apache для настройки аварийного переключения?

идея, стоящая за вопросом, состоит в том, чтобы настроить два apache с липкими сессиями перед некоторыми котами. когда один apache выходит из строя, другой должен взять на себя информацию о сеансе mod_jk, чтобы он знал, какие запросы обслуживать какому коту.

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

Если ваши внутренние серверы (tomcat) кластеризованы, они также должны реплицировать сеансы. В случае сбоя http соединения с 1 узлом http должны переходить к другому узлу. Параметр jsessionid должен предоставить http / mod_jk достаточно информации, чтобы знать, к какому узлу направить маршрут (например, jsessionid = lkj234lkj2ljk234lj.jvmRoute1 сообщит mod_jk, что этот сеанс назначен для рабочего с именем jvmRoute1). В случае, если указанный воркер недоступен, mod_jk должен перенаправить к следующему воркеру, который должен получить сеанс из кеша.

то есть репликация не требуется между серверами httpd, так как cookie на стороне клиента или URL-адрес, содержащий jsessionid, содержат информацию о маршрутизации.

Не должно быть необходимости в репликации чего-либо между узлами apache, потому что сохранение сеанса mod_jk работает без сохранения состояния.

Вам нужно установить jvmRoute в Tomcat server.xml, и он должен соответствовать имени ваших jk worker, используемых балансировщиком в mod_jk.