Конфигурация кластеризации Tomcat

Я настраиваю Liferay на Tomcat 7 для кластеризации. Я искал в Интернете и нашел несколько инструкций. Прочитав их все, у меня возникли некоторые вопросы. Буду признателен, если кто-нибудь поможет мне.

О. Я знаю, что вставив следующую строку в server.xml в "${CATALINA_HOME}/conf", он настраивает Tomcat со значениями по умолчанию, как описано в документации Tomcat (ссылка):

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

Вот некоторые из важных значений по умолчанию:

1– Многоадресный адрес – 228.0.0.4
2 – Многоадресный порт – 45564 (порт и адрес вместе определяют принадлежность к кластеру.
3 – Широковещательный IP-адрес: java.net.InetAddress.getLocalHost().getHostAddress() (убедитесь, что вы не передаете 127.0.0.1, это распространенная ошибка)
4– TCP-порт, принимающий сообщения репликации, – это первый доступный серверный сокет в диапазоне 4000–4100
5– Настроены два прослушивателя ClusterSessionListener
6. Настроены два перехватчика TcpFailureDetector и MessageDispatch15Interceptor.

Поскольку моя кластерная среда небольшая (два экземпляра Tomcat), я думаю, что конфигурации по умолчанию будет достаточно.

В#А. Я хотел бы знать, что именно означает пункт № 3. Как я могу сделать эту ошибку?

B. На основании вышеизложенного в конфигурации по умолчанию используется динамическая кластеризация по IP-адресу 228.0.0.4. Я предполагаю, что это широковещательный адрес (поправьте меня, если я ошибаюсь). Если это так, эта ссылка гласит:

В среде Linux большая часть ядра системы способна обрабатывать многоадресный адрес. но нам нужно добавить запись маршрута в таблицу маршрутизации ядра.

sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

Вопрос#Б. Что это значит? Как я могу знать, должен я это или нет?

C. В качестве следующего шага для кластеризации мне нужно добавить элемент «‹distributable/›» в мой файл web.xml веб-приложения. Для каждого веб-приложения в папке "${CATALINA_HOME}/webapps" на сервере имеется один файл web.xml. Я так понимаю, что все они должны иметь этот элемент для включения в репликацию сеанса (поправьте меня, если я ошибаюсь).

Вопрос#С1. Я нашел еще один файл «web.xml» с префиксом «liferay-» для каждого веб-приложения. Должны ли они рассматриваться как еще один web.xml и иметь этот элемент?

Вопрос#С2. Есть ли способ добавить элемент «‹distributable/›» в одно место и применить его ко всем веб-приложениям? Какой-то родительский/глобальный файл "web.xml"?

D. В некоторых инструкциях говорится, что атрибут "distributable='true'" должен быть добавлен к элементу "‹Context›" в файле "${CATALINA_HOME}/conf/context.xml". А некоторые не инструктируют.

В#Д. Является ли эта конфигурация обязательной? Каковы последствия наличия этого атрибута и его отсутствия?

Заранее спасибо.


person Rad    schedule 04.07.2014    source источник


Ответы (1)


A.) IP-адрес, передаваемый на борту, является IP-адресом узлов кластера, а не многоадресным адресом. UDP-пакеты будут содержать этот IP-адрес, чтобы сообщить получателю, кто отправил этот пакет; ip отправителей. Если было установлено значение localhost/127.0.0.1, получатели не смогут позвонить отправителю, потому что они будут звонить сами себе.

Б.) Мне никогда не приходилось добавлять такой маршрут. Извините, не могу сказать. Я бы без него попробовал.

C.) Только «основное» приложение Liferay нуждается в распространяемом флаге, так как оно будет обрабатывать сеанс.

D.) Добавление флага в web.xml делает то же самое. В элементе контекста вы можете перезаписать это свойство для определенного сервера. Если флаг установлен, приложение будет участвовать в репликации сеанса, т. е. если балансировщик установил для флага фиксированного сеанса значение false, клиенты будут постоянно перенаправляться, создавая новые сеансы на каждом узле. Если установлено, они также будут перенаправлены, но сохранят свою первую сессию.

person Stefan    schedule 04.07.2014