Как динамически добавлять серверы в балансировщик нагрузки?

Как динамически добавлять серверы в балансировщик нагрузки?

Это сложный вопрос, чтобы сформулировать его в ограниченном пространстве для заголовка, но я постараюсь объясниться. Я хочу, чтобы пользователи моего веб-сайта могли сами запускать серверы. Эти серверы будут оценены и оценены. Я хочу отправить эти значения в мой балансировщик нагрузки, чтобы он взвешивал трафик между всеми серверами на основе их мощности. Балансировщик нагрузки должен динамически балансировать нагрузку между временными серверами, поэтому каждый раз, когда кто-то запускает сервер, он будет добавлен в список серверов для балансировки с их взвешенной оценкой. Как бы я это сделал? Можно ли это вообще сделать?диаграмма

решение1

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

Но«динамически добавлять серверы в балансировщик нагрузки» у вас есть примерно две разные стратегии:

  • Ваш балансировщик нагрузки предоставляет API (и вы запускаете вызов API для добавления/удаления серверов из пула)

  • Ваш балансировщик нагрузки поддерживает механизм обнаружения сервисов.
    Довольно распространенным является DNS. Например, вы используете одно myservice.example.comимя хоста в пуле балансировщика нагрузки/конфигурации бэкэнда, и когда серверы добавляются/удаляются, вам не нужно менять конфигурацию балансировщика нагрузки, а только запись DNS:

    myservice.example.com. 90  IN  A  192.168.2.131
    myservice.example.com. 90  IN  A  192.168.2.132
    myservice.example.com. 90  IN  A  192.168.2.133
    

https://www.haproxy.com/blog/dns-service-discovery-haproxy/

Связанный контент