2010-10-06 1 views

ответ

10

Простой алгоритм здесь не так уж сложный.

Допустим, у вас есть список серверов со следующими весами:

A 10 
B 20 
C 30 

Если больший вес представляет он может обрабатывать больше трафика.

Просто разделите количество трафика, отправляемого на каждый сервер по весу и отсортируйте наименьший по размеру. Сервер, который выходит сверху, получает пользователя.

, например, скажем, каждый сервер начинается 10 пользователей, то порядок будет:

C - 10/30 = 0.33 
B - 10/20 = 0.50 
A - 10/10 = 1.00 

Это означает следующие 5 запросов будет идти на сервер С. шестых запрос будет идти либо C или B. 7-й будет идти в зависимости от того, кто не справился с 6-м.


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

Другие осложнения включают добавление прилипания к сеансам. Это означает, что балансир должен проверять каждый запрос на идентификатор сеанса и отслеживать, где они были в последний раз.

В целом, если вы можете просто купить продукт у компании, которая уже делает это.

0

Приложение для балансировки Tomcat и учебник here служат отправными точками.

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

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