Балансировка нагрузки в распределенном проекте - PullRequest
3 голосов
/ 11 декабря 2008

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

Ответы [ 3 ]

3 голосов
/ 11 декабря 2008

Если вы используете Apache Web Server для прокси-серверов приложений, я рекомендую использовать mod_proxy и mod_proxy_balancer. Вы можете найти краткое введение в mod_proxy здесь . Это касается Jetty, но его легко применить к другим серверам.

Первое, что вам нужно беспокоиться о кластеризации - это способ обработки сеансов. Вы должны быть уверены, что запрос, принадлежащий сеансу, направлен на тот же сервер (или сеанс каким-то образом сохраняется, а затем всегда извлекается). Mod_proxy может сделать это за вас.

Относительно алгоритма балансировки нагрузки см. Документацию mod_proxy_balancer. В соответствии с ним существует 3 алгоритма планировщика балансировки нагрузки.

Более старое решение для балансировки нагрузки - mod_jk.

В общем, это не то, что я бы реализовал сам, даже если бы у меня был лучший алгоритм. Лучше использовать существующее решение.

0 голосов
/ 09 декабря 2011

Посмотрите на haproxy . Это чрезвычайно стабильный и быстрый балансировщик нагрузки HTTP / TCP, который используется некоторыми веб-сайтами с чрезвычайно интенсивным трафиком.

Соответственно, необходима распределенная обработка сеанса (см. Kgiannakakis).

0 голосов
/ 09 декабря 2011

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

Соответственно, необходима распределенная обработка сеанса (см. Kgiannakakis).

...