2013-09-12 3 views
1

У меня есть веб-сервер Apache перед 2 tomcats, которые подключены к одной и той же базе данных MySQL.Балансировка нагрузки HTTP Apache на основе шаблона URL-адреса

Мне нужно загрузить баланс входящих запросов между двумя котами на основе параметра URL с именем «projectid». Например, все иеды проекта могут быть поданы с tomcat 1 и нечетными запросами с tomcat 2.

Это необходимо, так как пользователь может начать работу в проекте tomcat 1, о котором tomcat 2 не будет знать, и эти задания в настоящее время не хранятся в базе данных.

Есть ли способ достичь этого, используя балансировку нагрузки mod-proxy-load?

+0

Было бы сложно, чтобы каждое задание записывало начало и конец в базу данных, чтобы все пользователи могли видеть статус. Мы делаем это в ситуации, подобной нашей. У нас также есть одна такая ситуация, когда работа отправляет наше широковещательное сообщение в начале и в конце, и все остальные кластеры слушают это. –

ответ

0

Я не знаю, какой такой алгоритм нагрузки уже присутствует. Однако имейте в виду, что наиболее распространенный результат балансировки (особенно, когда у вас есть состояние на стороне сервера, как вы, очевидно, есть), является липким сеансом: вы только балансируете первоначальный запрос. После этого все запросы обычно направляются на один и тот же сервер.

Обычно я рекомендую не распространять данные сеанса, так как он добавляет некоторую часто ненужную производительность, попадающую на каждый запрос, что отрицает повышенную производительность, которую вы можете получить при кластеризации. Это может быть изменено в реальных установках, хотя и только первое эмпирическое правило.

Возможно, вы сможете создать свой собственный алгоритм балансировки нагрузки с балансировкой нагрузки mod-proxy-нагрузки (вам нужно будет настроить алгоритм в файле конфигурации), но я считаю, что ваше время лучше потрачено на исправление вашей реализации или реализовать бизнес-логику для проверки всех кластерных машин для выполнения заданий.

+0

Спасибо за ответ. Неплохие сессии не работают, так как несколько пользователей могут войти в проект, и эти задания могут работать в течение часа. Таким образом, могут быть ситуации, когда user1 может видеть задание и пользователь2. – user1592415

 Смежные вопросы

  • Нет связанных вопросов^_^