Балансировка нагрузки в Tomcat
Я хочу реализовать балансировку нагрузки в tomcat 6.0, чтобы мы могли создать более одного экземпляра tomcat, и когда любой из экземпляров не работает, другой экземпляр будет запускать наше приложение. так что наше приложение никогда не будет закрыто, даже если поступит большое количество одновременных запросов. Но я понятия не имею, чтобы реализовать это. Пожалуйста, дайте ваши ценные предложения.
6 ответов
Вы можете использовать mod_proxy или mod_jk, чтобы включить балансировку нагрузки. Смотрите здесь для получения инструкций.
У вас есть выбор между аппаратным обеспечением (например, Big F5) или программным балансировщиком нагрузки (Apache mod_proxy или mod_jk). В любом случае вам нужно будет выбрать правильный набор конфигураций для производительности, которые лучше всего подходят для вашей настройки.
Мы используем Piranha (это больше похоже на пакет различных инструментов). Он поставляется с RedHat Linux, но я думаю, что он должен идти вместе с CentOS и Fedora. Конечно, вы можете скачать пакет в любое время.
Это балансировщик нагрузки в сочетании с проверкой работоспособности и с интерфейсом конфигурации GUI.
Не уверен, если это можно использовать, если ваши запросы с учетом состояния, хотя.
На их сайте есть инструкция - http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html Я хотел бы, чтобы кто-нибудь объяснил конфигурацию Tomcat 6 grrrrrrrrrrrrr
Если вы используете сессию для чего-либо, вы должны помнить либо
а) использовать липкое распределение нагрузки, чтобы первый сервер, на который попадает данный пользователь, продолжал использовать тот же сервер
б) Включите репликацию сеансов, чтобы каждый сеанс был на всех серверах.
Обычно это проще сделать, но в случае сбоя сервера пользователь выйдет из приложения и нарушит свой рабочий процесс. B - лучшее решение, но оно не масштабируется до такого количества серверов.
Это действительно зависит. Если вы хотите, чтобы сервер Apache выдавал запрос в зависимости от нагрузки, вам нужно использовать mod_jk или mod_proxy.
Для mod_jk вот быстрое и грязное руководство, если вы хотите проверить, будет ли это работать:
http://tomcat.apache.org/connectors-doc/generic_howto/quick.html
В вашем $apacheHome/worker.properties для каждого сервера tomcat добавьте рабочую запись с именем и портом AJP, которые описаны в файле server.xml каждого сервера как соединитель с обычно портом 8009.
Убедитесь, что у вас есть библиотека mod_jk в вашем каталоге apache и измените ваш httpd.conf необходимой информацией из ссылки, и у вас будет балансировка нагрузки после перезапуска. Неважно, какой сервер запускается первым.
Существует также mod_proxy, но я не знаком с ним. Это, однако, выглядит хорошей альтернативой.