Как работает балансировщик нагрузки
Python
Senior
Без компании
Как работает балансировщик нагрузки
Ответы
Балансировщик нагрузки (Load Balancer) распределяет входящие запросы между несколькими серверами, чтобы избежать перегрузки одного узла и повысить отказоустойчивость.
**Основные алгоритмы балансировки:**
- **Round Robin** – запросы поочередно отправляются на серверы.
- **Least Connections** – запрос направляется на сервер с наименьшим числом активных соединений.
- **IP Hash** – клиентский IP хешируется, чтобы запросы одного клиента всегда шли на один сервер.
**Пример с `nginx` (конфигурация):**
```
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
location / {
proxy_pass http://backend;
}
}
```
**Python-пример с `requests` и балансировкой:**
```
import random
servers = ["http://server1:8000", "http://server2:8000"]
selected_server = random.choice(servers) # Простейшая балансировка
response = requests.get(f"{selected_server}/api/data")
```
Балансировщики также могут проверять здоровье серверов (health checks) и исключать нерабочие узлы.