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