diff --git a/borschevskaya_anna_lab_7/README.md b/borschevskaya_anna_lab_7/README.md new file mode 100644 index 0000000..5df6529 --- /dev/null +++ b/borschevskaya_anna_lab_7/README.md @@ -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, в котором с помощью настройки конфигурационного файла можно указать как настройки проксирования, +так и добавить логику балансировки. \ No newline at end of file