distributed-computing/tasks/grenaderova-aa/lab_7/README.md
2023-12-18 18:35:46 +04:00

37 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.

# Отчет по лабораторной работе №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-адресам или диапазонам адресов.