31 lines
2.7 KiB
Markdown
31 lines
2.7 KiB
Markdown
|
# Лабораторная работа №7
|
|||
|
**Балансировка нагрузки в распределённых системах при помощи открытых технологий**
|
|||
|
|
|||
|
## Эссе
|
|||
|
|
|||
|
### Алгоритмы и методы балансировки нагрузки
|
|||
|
Балансировка нагрузки обеспечивает равномерное распределение запросов между узлами системы. Основные алгоритмы включают:
|
|||
|
1. **Round Robin** – запросы направляются узлам по очереди.
|
|||
|
2. **Least Connections** – выбирается узел с наименьшим числом активных соединений.
|
|||
|
3. **Hashing** – распределение на основе хэширования, например, IP-адреса клиента.
|
|||
|
4. **Weighted Distribution** – узлам присваиваются веса в зависимости от их мощности.
|
|||
|
|
|||
|
### Открытые технологии для балансировки нагрузки
|
|||
|
Среди открытых технологий популярны:
|
|||
|
- **NGINX** – легковесный реверс-прокси, поддерживающий множество алгоритмов.
|
|||
|
- **HAProxy** – высокопроизводительный инструмент для балансировки TCP/HTTP трафика.
|
|||
|
- **Traefik** – современный балансировщик, оптимизированный для работы с микросервисами.
|
|||
|
|
|||
|
### Балансировка нагрузки на базах данных
|
|||
|
Для баз данных применяются подходы типа репликации и шардинга.
|
|||
|
|
|||
|
**Репликация** создает копии данных на нескольких серверах, и запросы могут обрабатываться на ближайшей копии.
|
|||
|
|
|||
|
**Шардинг** делит данные на части, каждая из которых хранится на отдельном сервере, что позволяет распределять нагрузку.
|
|||
|
|
|||
|
### Реверс-прокси как элемент балансировки
|
|||
|
Реверс-прокси (например, NGINX) выступает посредником между клиентами и серверами.
|
|||
|
Он принимает запросы, перенаправляет их на доступные серверы,
|
|||
|
а также может выполнять кэширование и SSL-терминацию, уменьшая нагрузку на конечные узлы.
|
|||
|
|