DAS_2024_1/nikolaeva_yana_lab_7/README.md
2024-12-10 21:15:34 +04:00

35 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Эссе: Балансировка нагрузки в распределённых системах
### Алгоритмы и методы для балансировки нагрузки
Балансировка нагрузки — это процесс распределения входящего трафика или задач между несколькими серверами
для оптимизации использования ресурсов, повышения производительности и обеспечения отказоустойчивости.
Наиболее популярные алгоритмы включают:
1. **Round Robin** (Циклический алгоритм): запросы распределяются равномерно по кругу между серверами.
2. **Least Connections** (Минимум подключений): запросы направляются на сервер с наименьшим числом активных соединений.
3. **Weighted Round Robin** (Взвешенный цикл): учитывает производительность серверов, направляя больше трафика на более мощные машины.
4. **Hash-Based Methods**: трафик распределяется на основе хэша данных, например, IP-адреса клиента.
### Открытые технологии для балансировки нагрузки
Среди открытых решений популярны:
- **NGINX**: мощный реверс-прокси, поддерживающий балансировку на основе различных алгоритмов.
- **HAProxy**: высокопроизводительный прокси-сервер, предназначенный для распределения трафика и работы с высокими нагрузками.
- **Traefik**: современный инструмент для балансировки в микросервисах, интегрирующийся с оркестраторами, такими как Kubernetes.
### Балансировка нагрузки на базах данных
Для распределения нагрузки на базах данных часто применяются репликация и шардирование:
- **Репликация**: данные копируются между несколькими серверами. Запросы на чтение направляются на реплики, а записи — на основной сервер.
- **Шардирование**: данные делятся на части (шарды), каждая из которых обрабатывается отдельным сервером, что снижает нагрузку на каждый из них.
### Реверс-прокси как элемент балансировки нагрузки
Реверс-прокси играет ключевую роль в балансировке нагрузки, так как он находится между клиентами и серверами.
Он не только распределяет запросы, но и может кэшировать ответы, сжимать данные и обеспечивать безопасность.
NGINX и HAProxy являются классическими примерами реверс-прокси.