Написание взвешенного алгоритма балансировки нагрузки

Я должен написать взвешенный алгоритм балансировки нагрузки, и я ищу некоторые ссылки. Есть ли книга? что вы можете предложить понять такие алгоритмы.

Спасибо!

Ответы на вопрос(2)

Приложение балансировки Tomcat и учебникВот служить хорошей отправной точкой.

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

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

A 10
B 20
C 30

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

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

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

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

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

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

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

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

Ваш ответ на вопрос