DAS_2024_1/bazunov_andrew_lab_7/README.md
Bazunov Andrew Igorevich 69f42f260e ready
2024-11-29 00:23:15 +04:00

56 lines
3.7 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.

## Эссе на тему "Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах"
# Балансировка нагрузки: алгоритмы, методы и технологии
Балансировка нагрузки — это процесс распределения входящего трафика или вычислительных задач между несколькими серверами, чтобы обеспечить равномерное использование ресурсов, минимизировать задержки и повысить отказоустойчивость системы.
---
## Алгоритмы и методы
Для реализации балансировки нагрузки используются различные алгоритмы:
- **Round Robin** — циклическое распределение запросов между серверами.
- **Least Connections** — запрос направляется на сервер с наименьшим количеством активных соединений.
- **Weighted Round Robin** — циклическое распределение с учётом веса серверов.
- **Dynamic Load Balancing** — алгоритмы, учитывающие текущую нагрузку и производительность серверов.
---
## Открытые технологии
Существует множество технологий, поддерживающих балансировку нагрузки:
- **Nginx** и **HAProxy** — мощные и популярные инструменты для HTTP и TCP трафика.
- **Kubernetes Ingress Controller** — автоматическая балансировка нагрузки в контейнерных средах.
- **AWS Elastic Load Balancer** и **Google Cloud Load Balancer** — решения для облачных инфраструктур.
---
## Балансировка нагрузки на базах данных
Балансировка базы данных требует специальных подходов:
- **Репликация**: создание копий базы данных для чтения, чтобы распределить запросы.
- **Шардинг**: разделение данных на сегменты, хранящиеся на разных серверах.
- Использование инструментов:
- **ProxySQL** для MySQL
- **pgpool-II** для PostgreSQL
---
## Реверс-прокси как элемент балансировки
Реверс-прокси выполняет роль промежуточного сервера:
- Принимает запросы от клиентов и перенаправляет их на бэкэнд-сервера.
- Обеспечивает:
- Распределение нагрузки
- Кеширование
- Шифрование (SSL/TLS)
- Мониторинг и анализ трафика
Популярные решения:
- **Nginx**
- **Traefik**
---
## Заключение
Балансировка нагрузки — это не только необходимая мера для обеспечения стабильности высоконагруженных систем, но и мощный инструмент для их масштабирования и оптимизации. Выбор алгоритмов и технологий зависит от особенностей проекта и его требований.