Load balancer
Что такое балансировка нагрузки?
В типичном дата-центре могут поступать миллионы запросов в секунду. Для обработки этих запросов тысячи (или даже сотни тысяч) серверов работают вместе, чтобы распределить нагрузку от входящих запросов.
Примечание: Здесь важно учитывать, как входящие запросы будут распределены между всеми доступными серверами.
Балансировщик нагрузки (Load Balancer, LB) — это решение этой задачи. Работа балансировщика нагрузки заключается в том, чтобы справедливо разделить все запросы клиентов между пулом доступных серверов. Балансировщики нагрузки выполняют эту задачу, чтобы избежать перегрузки или отказа серверов.
Слой балансировки нагрузки является первой точкой контакта в дата-центре после межсетевого экрана. Балансировщик нагрузки может не требоваться, если сервис обрабатывает всего несколько сотен или даже тысяч запросов в секунду. Однако для увеличения количества клиентских запросов балансировщики нагрузки предоставляют следующие возможности:
- Масштабируемость - Scalability: Добавляя серверы, можно бесшовно увеличивать пропускную способность приложения/серв иса. Балансировщики нагрузки делают такое увеличение или уменьшение масштабов прозрачным для конечных пользователей.
- Доступность - Availability: Даже если некоторые серверы выходят из строя или сталкиваются с неисправностью, система остается доступной. Одна из задач балансировщиков нагрузки — скрывать сбои серверов.
- Производительность - Performance: Балансировщики нагрузки могут перенаправлять запросы на серверы с меньшей нагрузкой, чтобы пользователь мог получить более быстрое время отклика. Это не только улучшает производительность, но и повышает эффективность использования ресурсов.
Вот абстрактное представление того, как работают балансировщики нагрузки:

Размещение балансировщиков нагрузки
Как правило, балансировщики нагрузки размещаются между клиентами и серверами. Запросы проходят через серверы и возвращаются к клиентам через слой балансировки нагрузки. Однако это не единственное место, где используются балансировщики нагрузки.
Рассмотрим три известных группы серверов: веб-серверы, серверы приложений и серверы баз данных. Чтобы распределить нагрузку трафика между доступными серверами, балансировщики нагрузки можно использовать между экземплярами серверов этих трех служб следующим образом:
- Разместите балансировщики нагрузки между конечными пользователями приложения и веб-серверами/шлюзами приложений.
- Разместите балансировщики нагрузки между веб-серверами и серверами приложений, которые выполняют бизнес-логику/логику приложений.
- Разместите балансировщики нагрузки между серверами приложений и серверами баз данных.

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