Если все, что вам нужно, это программный балансировщик нагрузки в Linux, используйте Apache Webserver2, Mod-Jk и Tomcat Clustering:
На вашем веб-сервере:
1) Установите apache2 и modjk:
sudo apt-get install apache2 libapache2-mod-jk
sudo a2enmod jk
2) Создайте файл «works.properties», доступный для вашего apache2. В некоторых случаях он автоматически создается в вашем каталоге / etc / apache2. Этот файл содержит конфигурацию lb, имена узлов, ips и порты ваших серверов Tomcat, т. Е .:
worker.list=balancer,lbstats
#node1
worker.node1.type=ajp13
worker.node1.host=NODE-IP
worker.node1.port=NODE-AJP-PORT
worker.node1.lbfactor=10
#more nodes here ... (change name in between)
#lb config
worker.balancer.type=lb
#turn off sticky session
worker.balancer.sticky_session=0
#add all defined node names to this list:
worker.balancer.balance_workers=node1
#lb status information (optional)
worker.lbstats.type=status
3) Создайте раздел Mod-Jk в вашем конфигурационном файле apache2, если он не был создан автоматически.
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkShmFile /tmp/jk-runtime-status
JkLogLevel info
4) Смонтируйте ваше приложение к балансировщику нагрузки (файл конфигурации apache2):
JkMount /MyApp balancer
JkMount /MyApp/* balancer
JkMount /modjkstatus lbstats
На ваших серверах Tomcat:
5) Установите tomcat, используя пакет tarball (лучше, чем apt verison). Изменить server.xml:
- отключить http-коннекторы.
- включить соединитель AJP / 1.3 и установить порт, который вы определили в worker.properties для этого узла.
добавить jvmRoute с правильным именем узла к элементу «Engine»:
<Engine jvmRoute="node1" ...
добавить элемент "Кластер" для простейшей настройки
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />
6) Разверните ваше приложение на всех кошках и добавьте распространяемый элемент в ваш web.xml.
<distributable/>
7) Убедитесь, что веб-сервер может получить доступ к портам ajp на ваших серверах Tomcat, и никто другой не может.
8) Запускайте веб-сервер и котов один за другим и проверяйте журналы (также /var/log/apache2/mod_jk.log).
9) Доступ к вашему приложению: http://mywebserver.com/MyApp
10) Проверить (и запретить доступ) страницу состояния lb http://mywebserver.com/modjkstatus