Merge pull request '[Л/Р 7] Гренадерова Анастасия' (#152) from Grenaderova_Anastasia/distributed-computing:grenaderova-aa-lab-7 into main

Reviewed-on: http://student.git.athene.tech/v.moiseev/distributed-computing/pulls/152
This commit is contained in:
Vladislav Moiseev 2023-12-21 00:06:40 +04:00
commit 7d6ae151fc

View File

@ -0,0 +1,36 @@
# Отчет по лабораторной работе №7
Выполнила студентка гр. ИСЭбд-41 Гренадерова А.А.
## Задачи
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
1. Какие алгоритмы и методы используются для балансировки нагрузки?
2. Какие открытые технологии существуют для балансировки нагрузки?
3. Как осуществляется балансировка нагрузки на базах данных?
4. Реверс-прокси как один из элементов балансировки нагрузки.
## Эссе
Балансировка нагрузки необходима для обеспечения высокой доступности и производительности приложений и сервисов. Алгоритмы и методы балансировки нагрузки включают различные формы распределения нагрузки между несколькими серверами или компонентами системы.
Некоторые из наиболее распространенных алгоритмов и методов включают:
Round-Robin: циклически распределяет нагрузку между серверами.
Weighted Round-Robin: учитывает вес каждого сервера при распределении нагрузки.
Least Connections: направляет запросы на сервер с наименьшим количеством активных соединений.
Least Load: основан на измерении текущей загрузки каждого сервера, направляет запрос на сервер с минимальной загрузкой.
Adaptive Algorithms: анализируют состояние системы, адаптируют распределение нагрузки в режиме реального времени.
Открытые технологии для балансировки нагрузки включают ряд решений, например:
1. HAProxy: поддерживает балансировку TCP, HTTP и SSL, предоставляет расширенные функции, такие как сжатие контента, кэширование, возможность работать в качестве обратного прокси-сервера.
2. Nginx: может использоваться для балансировки нагрузки с использованием модуля “upstream”.
3. Keepalived: для сервисов, работающих на кластерах серверов.
Балансировка нагрузки на базе данных может быть реализована различными способами:
1. Балансировку на уровне приложений: могут использовать различные методы для балансировки запросов к базе данных, например, используя пулы соединений или распределяя нагрузку между несколькими подключениями к базе данных.
2. Балансировка на уровне базы данных: MySQL и PostgreSQL предоставляют встроенные механизмы для балансировки нагрузки, такие как репликация и группы доступности.
Реверс-прокси, такие как HAProxy и Nginx выступают в качестве “первого уровня” защиты и балансируют трафик между серверами приложений. Преимущества:
1. Улучшение производительности: могут кэшировать статический контент.
2. Защита от DDoS-атак: принимают и обрабатывают запросы, а затем направляют их на конечные сервера.
3. Контроль доступа: позволяют администраторам контролировать доступ к различным серверам, ограничивая доступ к определенным IP-адресам или диапазонам адресов.