## Лабораторная работа 7. Вариант 4. ### Задание Написать небольшое эссе своими словами по вопросам из списка: - Какие алгоритмы и методы используются для балансировки нагрузки? - Какие открытые технологии существуют для балансировки нагрузки? - Как осуществляется балансировка нагрузки на базах данных? - Реверс-прокси как один из элементов балансировки нагрузки. ### Эссе `Балансировка нагрузки в распределенных системах` – это процесс распределения рабочей нагрузки между несколькими узлами или ресурсами, с целью равномерного распределения нагрузки и обеспечения эффективного использования ресурсов системы. При реализации балансировки нагрузки в распределённых системах, используются такие алгоритмы, как: `наименьшая нагрузка` – алгоритм, направляющий запросы на узел с наименьшим количеством активных соединений или наименьшей загрузкой, `наименьшее время отклика` – алгоритм, выбирающий узел с наименьшим временем отклика на предыдущие запросы, `циклический алгоритм` – алгоритм, циклично направляющий каждый новый запрос на следующий узел в очереди и `прогнозирующие алгоритмы` – алгоритмы, использующие исторические данные и статистику для прогнозирования будущей нагрузки и распределения запросов. Для балансировки нагрузки существует множество технологий. В рамках данного курса была затронута одна из них – `Nginx`. `Nginx` предоставляет функциональность распределения запросов между несколькими серверами с использованием различных алгоритмов балансировки нагрузки, таких как циклический алгоритм и взвешенный циклический алгоритм. Помимо Nginx существуют такие открытые технологии балансировки нагрузки, как `Apache HTTP Server`, `Traefik` (один из новичков на “GoLang”) и др. На базах данных балансировка нагрузки может быть осуществлена такими методами, как: `репликация данных` – создание копий базы данных на нескольких серверах (запросы от приложения могут быть распределены между этими репликами, чтобы снизить нагрузку на отдельные серверы), `фрагментация данных` – разделение данных на несколько фрагментов и их распределение по разным серверам (каждый сервер отвечает только за определенную часть данных, это позволяет распределить нагрузку на несколько серверов и обеспечить более равномерное распределение запросов), `балансировка данных на СУБД уровнях и уровнях приложений` и др. `Реверс-прокси` – это прокси-сервер, который принимает запросы от клиентов и перенаправляет их на один или несколько серверов внутри сети. Он также является одним из элементов балансировки нагрузки. Часто реверс-прокси используют в сочетании с другими методами балансировки нагрузки.