Поиск по сайту:

Как настроить кластер Apache Tomcat с 3 узлами в Ubuntu


В этой статье мы увидим, как настроить кластер серверов Apache Tomcat. Мы будем использовать 3 экземпляра Ubuntu 18.04 EC2 или виртуальные машины, здесь я использовал экземпляры EC2. Мы также увидим шаги по установке Java, поскольку для Apache Tomcat требуется Java.

Ниже приведены сведения о моем кластере.

Сведения о кластере:

  1. Узел 1: Базовый каталог=/root/tomcat1, IP=172.31.35.11
  2. Узел 2: базовый каталог=/root/tomcat2, IP=172.31.39.120.
  3. Node3: базовый каталог=/root/tomcat3, IP-адрес = 172.31.32.185.

Предпосылки

  1. Учетная запись AWS (создайте, если у вас ее нет и вы хотите создать кластер на инстансах EC2) (необязательно).
  2. 3 экземпляра EC2 (нажмите здесь, чтобы узнать, как создать экземпляр EC2) ИЛИ 3 ВМ с Ubuntu 18.04 LTS на них.
  3. Корневой доступ к серверам.

Что мы будем делать

  1. Загрузить Apache Tomcat
  2. Установите Java8
  3. Настройка кластера Apache Tomcat
  4. Запуск/остановка Apache Tomcat

Скачать Apache Tomcat

Измените пользователя на «root», чтобы избежать ошибок разрешения. Но не рекомендуется использовать пользователя root в производственной среде.

sudo -i

Создайте каталог. Здесь мы будем хранить пакет Apache Tomcat.

mkdir tomcat1 #На узле 2 mkdir tomcat2, На узле 3 mkdir tomcat3  
cd tomcat1/   #На узле 2 cd tomcat2/, На узле 3 cd tomcat3/

Загрузите и извлеките Apache-Tomcat-9.0.0.M17 или загрузите версию по вашему выбору отсюда.

#На каждом узле
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.0.M17/bin/apache-tomcat-9.0.0.M17.tar.gz #Download< br>tar -zxvf apache-tomcat-9.0.0.M17.tar.gz #Извлечение

Установить Java 8

#На каждом узле
sudo apt-get update            #Обновить информацию о системном пакете
sudo apt install openjdk-8-jdk #Установить Java
java --version                   #Проверить версию Java

Настроить Apache Tomcat

Прежде чем вносить необходимые изменения, давайте сделаем резервную копию файла server.xml по умолчанию.

#На каждом узле
cd apache-tomcat-9.0.0.M17/             #Измените каталог.
cp conf/server.xml conf/server.xml.bak  #Создайте резервную копию существующего файла конфигурации.

Внесите необходимые изменения в файл server.xml.

#На каждом узле
ifconfig                #Получить IP-адрес сервера.
vim conf/server.xml     #Откройте файл конфигурации, чтобы выполнить необходимые настройки.

Найдите следующие строки и измените localhost на IP-адрес узла.

<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost"  appBase="webapps

Для настройки кластера найдите следующий код

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

Добавьте следующий код на каждый узел и замените IP-Of-Node на IP-адрес самого узла.

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
        <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
        <Channel className="org.apache.catalina.tribes.group.GroupChannel">
                <Membership className="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4"
                        port="45564" frequency="500" dropTime="3000"/>
                <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="IP-Of-Node"
                                port="5000" selectorTimeout="100" maxThreads="6"/>
                <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
                                <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
                </Sender>
                <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
                <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/>
                <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
        </Channel>
        <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
        <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
        <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir="/tmp/war-temp/"
                deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/>
        <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>

Запустить/остановить Apache Tomcat

Запустите Apache Tomcat

Используйте файл startup.sh для запуска службы Apache Tomcat. С помощью команды netstat вы увидите, что служба запущена на порту 8080 по умолчанию.

#На каждом узле
bin/startup.sh #Запустить службу Apache Tomcat.
netstat -tulpn #Проверить порты, используемые в данный момент в системе.

Проверить журналы

catalina.out содержит журналы Apache Tomcat. Вы можете использовать команду tail, чтобы увидеть последние строки из файла.

tail -100f logs/catalina.out

Завершение работы Apache Tomcat

Службу Apache Tomcat можно остановить с помощью файла shutdown.sh.

bin/shutdown.sh #Остановить службу Apache Tomcat.

Заключение

В этой статье мы увидели шаги по созданию кластера Apache tomcat с 3 узлами, увидели базовую настройку, которую необходимо выполнить для создания кластера.