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