Балансировщик нагрузки оптимизирует использование ресурсов, уменьшает задержку и предотвращает перегруженность инфраструктуры.
Функции балансировщика
При горизонтальном масштабировании сервис помогает определить необходимую загруженность для нового сервера в кластере. Если в кластере два сервера, каждый из них получит равномерное количество трафика. Балансировщик обеспечивает гибкость при добавлении или удалении машин, оптимизирует использование ресурсов ИТ-инфраструктуры и ускоряет обслуживание сообщений.
Load Balancer отправляет запросы только на те серверы, которые находятся онлайн. Если сервер упадет, сервис распределит задачи среди других элементов ИТ-инфраструктуры. Load Balancer устраняет единую точку отказа, обеспечивая защиту системы и высокий уровень доступности приложений.
Функционально балансировщик похож на обратный прокси-сервер (reverse proxy), который так же выступает посредником между сервером и клиентом.
Алгоритмы балансировщика нагрузки
Load Balancer использует следующие алгоритмы:
- Round Robin — последовательное распределение запросов по группе серверов;
- Least Connections — новый запрос получает сервер с самым низким количеством текущих соединений с клиентами. Относительная вычислительная мощность каждого сервера учитывается при определении количества соединений;
- Sticky Sessions — алгоритм для закрепления пользовательских сессий, который помогает Round Robin и Least Connections. За сессией пользователя закрепляется обработавший его запрос сервер. В случае недоступности первоначального сервера сессия пользователя запустится на другом;
- Хэш — распределение запросов на основе заданного ключа, например, IP- или URL-адреса;
- IP-хэш — для определения, какой сервер получает запрос, используется IP-адрес клиента.