DAS_2024_1/tsukanova_irina_lab_7/README.md
2024-11-08 16:19:50 +04:00

44 lines
4.6 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.

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