Назад | Перейти на главную страницу

Неправильная балансировка Apache Load Balance

У меня есть 2 внутренних сервера в одной сети и 2 Tomcats на обеих машинах с одним и тем же приложением. Кроме того, у меня есть основная машина, на которой я загружаю свое приложение и которая выбирает, на какие рабочие запросы должны идти. Проблема в том, что машина Load Balancer всегда выбирает второго рабочего независимо от того, что и когда я манипулирую с приложением, чтобы оно не работало на второй машине, я загружаю приложение на основную машину, и приложение не загружается даже для факт, что worker1 работает, но когда я закрываю Tomcat на второй машине, он перенаправляет запросы первому worker, и он работает. Как заставить работать? Почему он всегда выбирает второго работника?

worker.properties:

worker.list=jkstatus,router
worker.jkstatus.type=status
worker.router.type=lb
worker.router.balance_workers=worker1,worker2
worker.router.method=B
worker.router.sticky_session=true
worker.template.type=ajp13
worker.template.lbfactor=1
worker.template.recovery_options=3
worker.template.socket_keepalive=true
worker.template.connection_pool_timeout=180
worker.worker1.reference=worker.template
worker.worker1.host=firstmachine.abc.com
worker.worker1.port=8009
worker.worker1.redirect=worker2
worker.worker2.reference=worker.template
worker.worker2.host=secondmachine.abc.com
worker.worker2.port=8009
worker.worker2.redirect=worker1

Если ваше приложение этого не требует, попробуйте изменить worker.router.sticky_sessions к false. Вот объяснение из документации:

sticky_session указывает, следует ли направлять запросы с идентификаторами SESSION ID обратно к тому же экземпляру Tomcat, который создал сеанс. Вы можете установить для sticky_session значение false, когда Tomcat использует диспетчер сеансов, который может обмениваться данными сеанса между несколькими экземплярами Tomcat - или если ваше приложение не имеет состояния. По умолчанию для sticky_session установлено значение true. https://tomcat.apache.org/connectors-doc/common_howto/loadbalancers.html