diff --git a/tsukanova_irina_lab_7/README.md b/tsukanova_irina_lab_7/README.md new file mode 100644 index 0000000..f8fd7f4 --- /dev/null +++ b/tsukanova_irina_lab_7/README.md @@ -0,0 +1,43 @@ + +# Цуканова Ирина ПИбд-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). Его задача - принимать входящий трафик и направлять на внутренние серверы. +Это позволяет скрывать внутреннюю архитектуру системы, улучшать безопасность, а также управлять распределением нагрузки. +