diff --git a/arutunyan_dmitry_lab_7/README.md b/arutunyan_dmitry_lab_7/README.md new file mode 100644 index 0000000..64b87a9 --- /dev/null +++ b/arutunyan_dmitry_lab_7/README.md @@ -0,0 +1,20 @@ + +## Лабораторная работа 7. Вариант 4. +### Задание +Написать небольшое эссе своими словами по вопросам из списка: + +- Какие алгоритмы и методы используются для балансировки нагрузки? +- Какие открытые технологии существуют для балансировки нагрузки? +- Как осуществляется балансировка нагрузки на базах данных? +- Реверс-прокси как один из элементов балансировки нагрузки. + +### Эссе +`Балансировка нагрузки в распределенных системах` – это процесс распределения рабочей нагрузки между несколькими узлами или ресурсами, с целью равномерного распределения нагрузки и обеспечения эффективного использования ресурсов системы. + +При реализации балансировки нагрузки в распределённых системах, используются такие алгоритмы, как: `наименьшая нагрузка` – алгоритм, направляющий запросы на узел с наименьшим количеством активных соединений или наименьшей загрузкой, `наименьшее время отклика` – алгоритм, выбирающий узел с наименьшим временем отклика на предыдущие запросы, `циклический алгоритм` – алгоритм, циклично направляющий каждый новый запрос на следующий узел в очереди и `прогнозирующие алгоритмы` – алгоритмы, использующие исторические данные и статистику для прогнозирования будущей нагрузки и распределения запросов. + +Для балансировки нагрузки существует множество технологий. В рамках данного курса была затронута одна из них – `Nginx`. `Nginx` предоставляет функциональность распределения запросов между несколькими серверами с использованием различных алгоритмов балансировки нагрузки, таких как циклический алгоритм и взвешенный циклический алгоритм. Помимо Nginx существуют такие открытые технологии балансировки нагрузки, как `Apache HTTP Server`, `Traefik` (один из новичков на “GoLang”) и др. + +На базах данных балансировка нагрузки может быть осуществлена такими методами, как: `репликация данных` – создание копий базы данных на нескольких серверах (запросы от приложения могут быть распределены между этими репликами, чтобы снизить нагрузку на отдельные серверы), `фрагментация данных` – разделение данных на несколько фрагментов и их распределение по разным серверам (каждый сервер отвечает только за определенную часть данных, это позволяет распределить нагрузку на несколько серверов и обеспечить более равномерное распределение запросов), `балансировка данных на СУБД уровнях и уровнях приложений` и др. + +`Реверс-прокси` – это прокси-сервер, который принимает запросы от клиентов и перенаправляет их на один или несколько серверов внутри сети. Он также является одним из элементов балансировки нагрузки. Часто реверс-прокси используют в сочетании с другими методами балансировки нагрузки.