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-терминацию, уменьшая нагрузку на конечные узлы.
|
||
|