Я должен написать алгоритм балансировки взвешенной нагрузки, и я ищу некоторые ссылки. Есть ли какая-нибудь книга? что вы можете предложить понять такие алгоритмы.Написание алгоритма балансировки взвешенной нагрузки
Спасибо!
Я должен написать алгоритм балансировки взвешенной нагрузки, и я ищу некоторые ссылки. Есть ли какая-нибудь книга? что вы можете предложить понять такие алгоритмы.Написание алгоритма балансировки взвешенной нагрузки
Спасибо!
Простой алгоритм здесь не так уж сложный.
Допустим, у вас есть список серверов со следующими весами:
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-м.
Чтобы усложнить ситуацию, вы можете захотеть, чтобы балансир был более умным. В этом случае ему необходимо отслеживать, сколько запросов в настоящее время обслуживается каждым из серверов, и уменьшать их, когда запрос полностью выполнен.
Другие осложнения включают добавление прилипания к сеансам. Это означает, что балансир должен проверять каждый запрос на идентификатор сеанса и отслеживать, где они были в последний раз.
В целом, если вы можете просто купить продукт у компании, которая уже делает это.
Приложение для балансировки Tomcat и учебник here служат отправными точками.