.. | ||
README.md |
Цуканова Ирина ПИбд-42
Лабораторная работа №7 - Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах
Задание:
Написать небольшое эссе своими словами.
- Какие алгоритмы и методы используются для балансировки нагрузки?
- Какие открытые технологии существуют для балансировки нагрузки?
- Как осуществляется балансировка нагрузки на базах данных?
- Реверс-прокси как один из элементов балансировки нагрузки.
Эссе:
Балансировка нагрузки в распределённых системах – это процесс равномерного распределения входящих запросов и вычислительных задач на ресурсы. Это производится для того, чтобы предотвратить перегрузку отдельных компонентов системы, а также улучшить ее общую производительность.
Для балансировки нагрузки существуют специальные алгоритмы и методы, наиболее популярными из них являются следующие:
- Круговой алгоритм (Round Robin) - направляет каждый новый запрос на следующий сервер по кругу.
- Взвешенный круговой алгоритм (Weighted Round Robin) - расширение для предыдущего, только серверам назначаются веса, в зависимости от этого веса сервера и получаются запросы.
- Хеширование клиента (Client Hashing) - запросы от одного клиента всегда направляются на один и тот же сервер.
- Least Connections - запрос направляется на сервер с наименьшим числом активных подключений.
- Least Response Time - выбирается сервер с наименьшим временем отклика.
Что качается существующих открытых технологий для балансировки нагрузки,
Конечно существуют и уже готовые открытые решения для балансировки нагрузки, позволяющие распределять трафик между серверами и управлять потоками данных. Наиболее популярен веб-сервер NGINX. Он поддерживает различные алгоритмы, такие как Round Robin и Least Connections, и может работать с большими объемами трафика. Также можно выделить HAProxy, который специализируется на обработке больших объемов HTTP и TCP-трафика, и оптимизированный для работы с контейнерами и микросервисами, такими как Docker и Kubernetes, Traefik.
Существует балансировка нагрузки и для баз данных. Это важно для обеспечения высокой производительности и отказоустойчивости. Методы балансировки нагрузки для баз данных включают:
- Разделение потоков на чтение и запись.
- Разбиение БД на сегменты, каждый из которых хранит определенную часть данных.
- Кеширование на уровне базы данных.
Одним из элементов балансировки нагрузки является реверс-прокси (reverse proxy). Его задача - принимать входящий трафик и направлять на внутренние серверы. Это позволяет скрывать внутреннюю архитектуру системы, улучшать безопасность, а также управлять распределением нагрузки.