add: 7 лабораторная работа

This commit is contained in:
mfnefd 2024-12-19 18:48:45 +04:00
parent 5dd9e26f07
commit 93f006b7bc

View File

@ -0,0 +1,32 @@
# Лабораторная работа номер 7
> Здравствуйте меня зовут Балахонов Данила группа ПИбд-42
>
> *— Балахонов Данила ПИбд-42*
# Вопросы лабораторной работы номер 7
## Какие алгоритмы и методы используются для балансировки нагрузки?
Существует два вида балансировки, которые используются на практике:
1. Статическая балансировка
2. Динамическая балансировка
Идея статической балансировки заключается в фиксировании количества работ, которых может выполнять поток. Динамическая же, напротив, предоставляет возможность изменять объем работ во времени. Если поток закончит выполнение работы, то ему предоставляется новая работа.
Алгоритмы, которые применяются для балансировки:
- Круговой алгоритм. Это самый простой и распространенный алгоритм. Работает по принципу кругового распределения задач. Каждый запрос отправляется на следующий сервер в порядке, установленном заранее.
- Наименьшее количество соединений. Этот алгоритм выбирает сервер с наименьшим количеством активных соединений.
- Случайный выбор. Выбирает случайным образом некоторое количество серверов и отправляет запрос на менее загруженный из них.
- Хеш. Использует хеш-функцию для распределения запросов между серверами на основе определенного параметра. Этот алгоритм позволяет отправлять запросы от одного и того же клиента на один и тот же сервер.
## Какие открытые технологии существуют для балансировки нагрузки?
Для балансировки используются такие популярные технологии, как Nginx, Traefik, HAProxy.
## Как осуществляется балансировка нагрузки на базах данных?
Балансировка нагрузки на базах данных осуещствляется с помощью различных методов, таких как:
- Репликация. Копирует базу данных на несколько серверов.
- Чтение данных из копий базы данных, запись - в основную базу данных.
- Шардинг. Распределяет между несколькими серверами части одной базы данных по определенному критерию (например ID).
- Кеширование. Позволяет снизить нагрузку на основную базу данных, вытащив наиболее часто используемые данные. Обычно перед запуском производят "прогрев кеша", то есть передача популярных данных в кеш заранее.
- Прокси балансировщики для распределения нагрузки между репликами базы данных.
## Реверс-прокси как один из элементов балансировки нагрузки.
Реверс-прокси - это прокси сервер, который запросы клиентов перенаправляет на сервера внутренней сети.
Реверс-прокси используется для предоставления фасада, объединения нескольких сервисов, балансировки нагрузки.
Балансировка нагрузки реверс-прокси происходит с помощью алгоритмов, которые были написаны выше. Также для повышения работоспособности он имеет встроенный кеш. Используя реверс-прокси можно централизованно управлять нагрузкой системы, проводить мониторинг.
Пример реверс-прокси: Nginx.