Конфигурация кластера 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), я думаю, что конфигурации по умолчанию будут достаточно хорошими.
Q # A. Я хотел бы знать, что именно означает пункт № 3. Как я могу сделать эту ошибку?
B. Исходя из вышеизложенного, в конфигурации по умолчанию используется динамическая кластеризация на IP-адресе 228.0.0.4. Я предполагаю, что это адрес трансляции (поправьте меня, если я ошибаюсь). Если это так, эта ссылка говорит:
В среде Linux большая часть ядра системы способна обрабатывать адреса многоадресной рассылки. но нам нужно добавить запись маршрута в таблицу маршрутизации ядра.
sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
Вопрос #B. Что это значит? Как я могу знать, должен ли я это или нет?
C. В качестве следующего шага для кластеризации, мне нужно добавить элемент "Distributable />" в мой файл web.xml веб-приложения. Существует один файл web.xml для каждого веб-приложения в папке "${CATALINA_HOME}/webapps" на сервере. Я понимаю, что все они должны иметь этот элемент для включения в репликацию сеанса (поправьте меня, если я ошибаюсь).
Вопрос # С1. Я нашел другой файл "web.xml" с "liferay-" в качестве префикса для каждого веб-приложения. Должны ли они рассматриваться как еще один web.xml и иметь этот элемент?
Вопрос # С2. Есть ли способ добавить элемент "Distributable />" в одном месте и применить его ко всем веб-приложениям? Какой-то родительский / глобальный файл "web.xml"?
D. В некоторых инструкциях говорится, что атрибут "distribtable='true'" должен быть добавлен к элементу
Вопрос #D. Является ли эта конфигурация обязательной? Каковы последствия наличия этого атрибута и его отсутствия?
Заранее спасибо.
1 ответ
A.) IP-адрес, указанный на плате, является IP-адресом узлов кластера, а не адресом многоадресной рассылки. Пакеты udp будут содержать этот ip, чтобы сообщить получателю, который отправил этот пакет; отправители ip. Если для этого параметра установлено значение localhost/127.0.0.1, получатели не смогут вызывать отправителя, потому что он будет вызывать себя.
Б.) Мне никогда не приходилось добавлять такой маршрут. Извините, не могу сказать. Я бы попробовал без этого.
C.) Только "основное" приложение Liferay нуждается в распространяемом флаге, поскольку он будет обрабатывать сеанс.
D.) Добавление флага в web.xml делает то же самое. В элементе context вы можете перезаписать это свойство для конкретного сервера. Если этот флаг установлен, приложение будет участвовать в репликации сеанса, т. Е. Если для балансировщика установлен флажок липкого сеанса, установленный в false, клиенты будут перенаправляться непрерывно, создавая новые сеансы на каждом узле. Если установлено, они также будут перенаправлены, но сохранят свой первый сеанс.