Причина инцидента: существует основной проект «картинки, описывающие красивые вещи», и еще одна подфункция — это функция входа владельца бренда, которая представляет собой проект, отдельный от основного проекта. Для обмена информацией о вошедших в систему пользователях сеанс. реализовано совместное использование, два кота, один tomcat6, tomcat7
Реализация совместного использования сеансов в системе Windows веб-проекта
Первый шаг:
Настройте следующий код в файлах context.xml двух котов:
<Менеджер className="de.javakaffee.web.msm.MemcachedBackupSessionManager"memcachedNodes="n1:127.0.0.1:11211"lockingMode="auto"sticky="true"requestUriIgnorePattern=".*/.(ico|png|gif|jpg| CSS|j s)$"sessionBackupAsync="false"sessionBackupTimeout="100"transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"copyCollectionsForSerialization="true"/>
Шаг второй:
Пакет Jar добавлен в Tomcat6:
Пакет Jar добавлен в tomcat7:
PS: используйте memcache для сохранения сеанса Tomcat.
Основная цель написания этой статьи — исправить некоторые ошибки в Интернете.
Предпосылки:
1. memcached работает нормально
2. Tomcat работает нормально.
1. Способ установки и установочный пакет.
javolution-5.4.3.1.jar
memcached-2.4.2.jar
memcached-session-manager-1.3.0.jar
msm-javolution-serializer-cglib-1.3.0.jar
msm-javolution-serializer-jodatime-1.3.0.jar
Способ установки: поместите эти пакеты в /usr/local/tomcat6.0/lib.
2. Отредактируйте файл конфигурации tomcat.
<Это важно, поскольку большинство статей в Интернете говорят об изменении конфигурации сервера. В настоящее время обнаружено, что редактирование файла context.xml может немедленно перенести сеанс в кэш памяти. >
# vim /usr/local/tomcat6.0/conf/context.xml <Context> <!-- Добавьте в это поле следующее содержимое. Введите IP-адрес и номер порта вашего сервера memcached при входе в узел --> <Manager. className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:10.254.41.197:11211" requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$" sessionBackupAsync="false" sessionBackupTimeout="100" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" copyCollectionsForSerialization="false" /> </Context>
3. Как протестировать?
Мой текущий метод тестирования — реализовать балансировку нагрузки с помощью apache mod_jk (написанного в предыдущей статье) и включить репликацию сеансов между котами.
В результате идентификатор просмотра будет менять узел при каждом представлении пользователя, но идентификатор не изменится.
Например:
Идентификатор CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat2
Следующая подача будет такой: <Узел переключен, но идентификатор остается неизменным>
Идентификатор CFC1ACAC6B0B8C27BEA76919F3A99BF8-n1.tomcat1
В сочетании со статусом memcache: <Когда мне не удалось успешно передать сеанс в memcached, cmd_set был 0>
# perl memcached-tool.pl 10.254.41.197:11211 статистика
cmd_get 27
cmd_set 15
get_hits 12
# perl memcached-tool.pl 10.254.41.197:11211 статистика
cmd_get 31
cmd_set 17
get_hits 14
Думаю, исходя из вышеизложенного, конфигурация удачная!