add: 7 лабораторная работа
This commit is contained in:
parent
5dd9e26f07
commit
93f006b7bc
32
balakhonov_danila_lab_7/README.md
Normal file
32
balakhonov_danila_lab_7/README.md
Normal file
@ -0,0 +1,32 @@
|
||||
# Лабораторная работа номер 7
|
||||
|
||||
> Здравствуйте меня зовут Балахонов Данила группа ПИбд-42
|
||||
>
|
||||
> *— Балахонов Данила ПИбд-42*
|
||||
|
||||
# Вопросы лабораторной работы номер 7
|
||||
## Какие алгоритмы и методы используются для балансировки нагрузки?
|
||||
Существует два вида балансировки, которые используются на практике:
|
||||
1. Статическая балансировка
|
||||
2. Динамическая балансировка
|
||||
|
||||
Идея статической балансировки заключается в фиксировании количества работ, которых может выполнять поток. Динамическая же, напротив, предоставляет возможность изменять объем работ во времени. Если поток закончит выполнение работы, то ему предоставляется новая работа.
|
||||
Алгоритмы, которые применяются для балансировки:
|
||||
- Круговой алгоритм. Это самый простой и распространенный алгоритм. Работает по принципу кругового распределения задач. Каждый запрос отправляется на следующий сервер в порядке, установленном заранее.
|
||||
- Наименьшее количество соединений. Этот алгоритм выбирает сервер с наименьшим количеством активных соединений.
|
||||
- Случайный выбор. Выбирает случайным образом некоторое количество серверов и отправляет запрос на менее загруженный из них.
|
||||
- Хеш. Использует хеш-функцию для распределения запросов между серверами на основе определенного параметра. Этот алгоритм позволяет отправлять запросы от одного и того же клиента на один и тот же сервер.
|
||||
## Какие открытые технологии существуют для балансировки нагрузки?
|
||||
Для балансировки используются такие популярные технологии, как Nginx, Traefik, HAProxy.
|
||||
## Как осуществляется балансировка нагрузки на базах данных?
|
||||
Балансировка нагрузки на базах данных осуещствляется с помощью различных методов, таких как:
|
||||
- Репликация. Копирует базу данных на несколько серверов.
|
||||
- Чтение данных из копий базы данных, запись - в основную базу данных.
|
||||
- Шардинг. Распределяет между несколькими серверами части одной базы данных по определенному критерию (например ID).
|
||||
- Кеширование. Позволяет снизить нагрузку на основную базу данных, вытащив наиболее часто используемые данные. Обычно перед запуском производят "прогрев кеша", то есть передача популярных данных в кеш заранее.
|
||||
- Прокси балансировщики для распределения нагрузки между репликами базы данных.
|
||||
## Реверс-прокси как один из элементов балансировки нагрузки.
|
||||
Реверс-прокси - это прокси сервер, который запросы клиентов перенаправляет на сервера внутренней сети.
|
||||
Реверс-прокси используется для предоставления фасада, объединения нескольких сервисов, балансировки нагрузки.
|
||||
Балансировка нагрузки реверс-прокси происходит с помощью алгоритмов, которые были написаны выше. Также для повышения работоспособности он имеет встроенный кеш. Используя реверс-прокси можно централизованно управлять нагрузкой системы, проводить мониторинг.
|
||||
Пример реверс-прокси: Nginx.
|
Loading…
Reference in New Issue
Block a user