# Лабораторная работа № 7. Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах

**Задание**

Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :). А помогут Вам в этом вопросы из списка:

1. Какие алгоритмы и методы используются для балансировки нагрузки?
2. Какие открытые технологии существуют для балансировки нагрузки?
3. Как осуществляется балансировка нагрузки на базах данных?
4. Реверс-прокси как один из элементов балансировки нагрузки.
# Балансировка нагрузки

Балансировка нагрузки распределяет запросы между серверами для повышения производительности и устойчивости. Популярные алгоритмы:

- **Round Robin** — поочередное распределение запросов.
- **Least Connections** — выбор наименее загруженного сервера.
- **Weighted Round Robin** — учет мощности сервера при распределении.

## Технологии

Для реализации используются инструменты, такие как:

- **NGINX** — веб-сервер и реверс-прокси с функциями балансировки.
- **HAProxy** — высокопроизводительный прокси для сложных сценариев.
- **Traefik** — интеграция с контейнерными оркестраторами.

## Балансировка нагрузки в базах данных

Для распределения нагрузки в базах данных применяют:

- **Репликация**: 
  - Мастер-слейв — чтение с реплик, запись через мастер.
  - Мастер-мастер — запись и чтение на нескольких серверах.
- Инструменты: **ProxySQL** для динамического распределения запросов.

## Реверс-прокси

Реверс-прокси, например **NGINX**, принимает клиентские запросы и перенаправляет их на серверы. Это улучшает:

- Производительность.
- Безопасность.
- Скрытие внутренней архитектуры системы.