⚡️ LOAD BALANCING IN SYSTEM DESIGN
Load Balancing - это распределение входящего трафика между несколькими серверами, чтобы ни один из них не перегружался. Это повышает доступность, стабильность и скорость работы системы.
Зачем нужен Load Balancing
- Предотвращает перегрузку серверов
- Обеспечивает высокую доступность
- Даёт отказоустойчивость при сбоях
- Улучшает время отклика
- Позволяет масштабировать систему горизонтально
Как это работает
Клиент → Load Balancer → активный рабочий сервер.
Load Balancer следит за состоянием серверов и отправляет запросы только на здоровые узлы.
Если сервер выходит из строя — трафик автоматически уходит на другие сервера.
Используется для веб-серверов, приложений, микросервисов и даже баз данных.
Типы Load Balancers
- Аппаратные — физические устройства в крупных компаниях
- Программные — Nginx, HAProxy, Envoy
- Облачные — AWS ELB, Google Cloud LB, Azure Load Balancer
Алгоритмы распределения трафика
- Round Robin — по кругу
- Least Connections — на сервер с минимальным числом активных подключений
- IP Hash — сервер выбирается на основе IP клиента
- Weighted Round Robin — учитывает веса серверов
- Random — случайное распределение запросов
Health Checks
Load Balancer проверяет:
- статус сервера
- нагрузку на CPU
- нагрузку на память
- доступность сети
Нездоровые серверы исключаются из пула автоматически.
Local vs Global Load Balancing
- Local — внутри одного дата-центра или региона
- Global — выбор ближайшего или самого стабильного региона
Load Balancing в микросервисах
- Каждый сервис может иметь много экземпляров
- Load Balancer направляет трафик в нужный инстанс
- Работает вместе с API Gateway и Service Discovery
Преимущества
- Надёжность
- Быстрее обработка запросов
- Без простоя при обновлениях
- Переживает резкие скачки нагрузки
- Работает с авто-масштабированием
Post #1899
3.53K


- 👍 12
- 🔥 6
- ❤ 5