БАЛАНСИРОВКА НАГРУЗКИ В ПРОЕКТИРОВАНИИ СИСТЕМ
(продолжение предыдущего поста)
→ Балансировка нагрузки — это процесс распределения входящего сетевого трафика между несколькими серверами, чтобы ни один сервер не оказался перегружен.
→ Она повышает доступность, производительность и отказоустойчивость в распределённых системах.
→ ПОЧЕМУ ВАЖНА БАЛАНСИРОВКА НАГРУЗКИ
→ Предотвращает перегрузку сервера
→ Обеспечивает высокую доступность и бесперебойную работу
→ Гарантирует отказоустойчивость при выходе сервера из строя
→ Сокращает общее время отклика
→ Позволяет горизонтальное масштабирование
→ КАК РАБОТАЕТ БАЛАНСИРОВКА НАГРУЗКИ
→ Запрос клиента → Балансировщик нагрузки → Рабочий экземпляр сервера
→ Балансировщик нагрузки отслеживает состояние серверов и направляет трафик только на активные узлы
→ Если один сервер выходит из строя → Балансировщик нагрузки автоматически перенаправляет трафик на другие серверы
→ Работает с веб‑серверами, серверами приложений, микросервисами и базами данных
→ ТИПЫ БАЛАНСИРОВЩИКОВ НАГРУЗКИ
→ Аппаратные балансировщики нагрузки
→ Физические устройства, используемые в корпоративных средах
→ Программные балансировщики нагрузки
→ Примеры: Nginx, HAProxy, Envoy
→ Облачные балансировщики нагрузки
→ AWS ELB, Google Cloud LB, Azure Load Balancer
→ АЛГОРИТМЫ БАЛАНСИРОВКИ НАГРУЗКИ
→ Round Robin (циклический перебор)
→ Запросы распределяются по кругу в циклическом порядке
→ Least Connections (наименьшее число соединений)
→ Трафик направляется на сервер с наименьшим числом активных соединений
→ IP Hash (хеширование по IP)
→ Сервер для обработки запроса определяется по IP‑адресу клиента
→ Weighted Round Robin (циклический перебор с весами)
→ Некоторые серверы получают больше трафика в соответствии с назначенными им весами
→ Randomized Distribution (случайное распределение)
→ Запросы направляются на случайные серверы для равномерного распределения нагрузки
→ ПРОВЕРКА СОСТОЯНИЯ СЕРВЕРОВ
→ Балансировщик нагрузки регулярно проверяет:
→ Состояние сервера → Загруженность процессора → Использование памяти → Доступность сети
→ Автоматически исключает неработоспособные серверы из пула
→ ГЛОБАЛЬНАЯ И ЛОКАЛЬНАЯ БАЛАНСИРОВКА НАГРУЗКИ
→ Локальная балансировка нагрузки:
→ Распределяет трафик между серверами в пределах одного региона или дата‑центра
→ Глобальная балансировка нагрузки:
→ Направляет пользователей в ближайший или наиболее работоспособный регион
→ Используется для глобальных приложений (CDN, развёртывания в нескольких регионах)
→ БАЛАНСИРОВКА НАГРУЗКИ В МИКРОСЕРВИСАХ
→ Каждый сервис может иметь несколько экземпляров
→ Балансировщик нагрузки направляет трафик на нужный экземпляр сервиса
→ Работает совместно с API‑шлюзами и механизмами обнаружения сервисов
→ ПРЕИМУЩЕСТВА БАЛАНСИРОВКИ НАГРУЗКИ
→ Повышенная надёжность
→ Более быстрая обработка запросов
→ Отсутствие простоя при обновлении серверов
→ Способность справляться с пиковыми нагрузками
→ Поддержка автоматического масштабирования
Post #2808
1.67K