forked from Alexey/DAS_2024_1
Merge pull request 'borschevskaya_anna_lab_7 is ready' (#86) from borschevskaya_anna_lab_7 into main
Reviewed-on: Alexey/DAS_2024_1#86
This commit is contained in:
commit
382273ccb8
37
borschevskaya_anna_lab_7/README.md
Normal file
37
borschevskaya_anna_lab_7/README.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# Отчет. Лабораторная работа 7
|
||||||
|
|
||||||
|
## Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах
|
||||||
|
|
||||||
|
### Какие алгоритмы и методы используются для балансировки нагрузки?
|
||||||
|
В распределенных системах балансировка нагрузки может осуществляться на разных уровнях:
|
||||||
|
- балансировка нагрузки на сетевом уровне
|
||||||
|
- балансировка нагрузки на транспортном уровне
|
||||||
|
- балансировка нагрузки на прикладном уровне
|
||||||
|
|
||||||
|
На сетевом уровне балансировка может реализовываться с помощью таких алгоритмов, как Round Robin, Weighted Round Robin или Least Connections.
|
||||||
|
Алгоритм Round Robin основывается на принципе выделения одному доменному имени несколько IP, которые выбираются
|
||||||
|
при поступлении запроса по очереди.
|
||||||
|
|
||||||
|
Weighted Round Robin - усовершенствованный алгоритм Round Robin, который подразумевает указание весов каждому серверу
|
||||||
|
в зависимости от доступных мощностей.
|
||||||
|
|
||||||
|
Алгоритм Least Connections вносит в предыдущий алгоритм еще одно условие выбора сервера - количество активных подключений к нему,
|
||||||
|
избегая перегруженности имеющихся узлов.
|
||||||
|
|
||||||
|
### Какие открытые технологии существуют для балансировки нагрузки?
|
||||||
|
Среди самых популярных открытых технологий можно выделить Nginx и Kubernetes. Nginx позволяет управлять нагрузкой на
|
||||||
|
компоненты системы с помощью различных алгоритмов и перенаправляет запросы от клиента к сервисам, выстпая в качестве реверс-прокси.
|
||||||
|
Kubernetes представляет собой платформу для управления контейнерами, которая включает встроенные механизмы для балансировки
|
||||||
|
нагрузки между подами.
|
||||||
|
### Как осуществляется балансировка нагрузки на базах данных?
|
||||||
|
|
||||||
|
Можно уменьшить нагрузку на базу данных путем использования механизма кэширования на уровне приложения
|
||||||
|
или с помощью нереляционных БД (Redis и др.). Или с помощью шардирования данных, размещенных в базе.
|
||||||
|
|
||||||
|
Для балансировки нагрузки на базах данных на прикладном уровне, например, существует утилита pgpool —
|
||||||
|
прокси между клиентом и сервером СУБД PostgreSQL, с помощью которого задаются правила перенаправления
|
||||||
|
запросов к БД в зависимости от их содержания (чтение/запись).
|
||||||
|
### Реверс-прокси как один из элементов балансировки нагрузки.
|
||||||
|
Реверс-прокси перенаправляет входящие запросы на соотвествующие сервисы, может выступать при этом и в качестве балансировщика нагрузки, реализуя один из ранее озвученных алгоритмов.
|
||||||
|
Как уже было сказано, примером такого компонента РС может выступать Nginx, в котором с помощью настройки конфигурационного файла можно указать как настройки проксирования,
|
||||||
|
так и добавить логику балансировки.
|
Loading…
Reference in New Issue
Block a user