Apache Http Балансировка нагрузки при сбое с mod_jk - PullRequest
4 голосов
/ 01 декабря 2011

Я использую apache http и mod_jk для балансировки нагрузки.При использовании липких сеансов, если один из экземпляров tomcat умирает, запрос успешно перенаправляется на другой узел.Если по какой-то причине приложения умирают, а кот остается живым, запросы продолжают отправляться на узел, на котором установлено мертвое приложение.Любые идеи, как решить эту проблему?

Ниже вы можете оштрафовать меня файл worker.properties.

worker.list=myworker

worker.myworker1.port=8009
worker.myworker1.host=host1
worker.myworker1.type=ajp13
worker.myworker1.lbfactor=1

worker.myworker2.port=8009
worker.myworker2.host=host2
worker.myworker2.type=ajp13
worker.myworker2.lbfactor=1

worker.myworker.type=lb
worker.myworker.balance_workers=myworker1,myworker2
worker.myworker.sticky_session=True

Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 декабря 2011

Обычно выдает ошибку 404, когда приложение недоступно, пока tomcat все еще работает. Я думаю, что есть рабочая директива для этого, и она fail_on_status, и вы могли бы использовать это для ошибки 404, и, возможно, нет необходимости включать код ошибки 503 в эту директиву, что, вероятно, означает, что tomcat остановлен, и это работа mod_jk для перехода на другой рабочий узел. Попробуйте ниже workers.properties (строка, добавленная к каждому работнику) также для других кодов ошибок, разделенных запятой.

worker.list=myworker

worker.myworker1.port=8009
worker.myworker1.host=host1
worker.myworker1.type=ajp13
worker.myworker1.lbfactor=1
#worker.myworker1.fail_on_status=-404,503
worker.myworker1.fail_on_status=-404

worker.myworker2.port=8009
worker.myworker2.host=host2
worker.myworker2.type=ajp13
worker.myworker2.lbfactor=1
#worker.myworker2.fail_on_status=-404,503
worker.myworker2.fail_on_status=-404

worker.myworker.type=lb
worker.myworker.balance_workers=myworker1,myworker2
worker.myworker.sticky_session=True
worker.myworker.sticky_session_force=True
1 голос
/ 11 декабря 2011

mod_jk не может пропинговать URL-адрес пульса для определения работоспособности узла.

Одним из решений является использование внешнего скрипта, который сделает это за вас, и если приложение не работает, оно должно перезапустить экземпляр tomcat.

...