DAS_2023_1/arutunyan_dmitry_lab_7/README.md

4.6 KiB
Raw Blame History

Лабораторная работа 7. Вариант 4.

Задание

Написать небольшое эссе своими словами по вопросам из списка:

  • Какие алгоритмы и методы используются для балансировки нагрузки?
  • Какие открытые технологии существуют для балансировки нагрузки?
  • Как осуществляется балансировка нагрузки на базах данных?
  • Реверс-прокси как один из элементов балансировки нагрузки.

Эссе

Балансировка нагрузки в распределенных системах это процесс распределения рабочей нагрузки между несколькими узлами или ресурсами, с целью равномерного распределения нагрузки и обеспечения эффективного использования ресурсов системы.

При реализации балансировки нагрузки в распределённых системах, используются такие алгоритмы, как: наименьшая нагрузка алгоритм, направляющий запросы на узел с наименьшим количеством активных соединений или наименьшей загрузкой, наименьшее время отклика алгоритм, выбирающий узел с наименьшим временем отклика на предыдущие запросы, циклический алгоритм алгоритм, циклично направляющий каждый новый запрос на следующий узел в очереди и прогнозирующие алгоритмы алгоритмы, использующие исторические данные и статистику для прогнозирования будущей нагрузки и распределения запросов.

Для балансировки нагрузки существует множество технологий. В рамках данного курса была затронута одна из них Nginx. Nginx предоставляет функциональность распределения запросов между несколькими серверами с использованием различных алгоритмов балансировки нагрузки, таких как циклический алгоритм и взвешенный циклический алгоритм. Помимо Nginx существуют такие открытые технологии балансировки нагрузки, как Apache HTTP Server, Traefik (один из новичков на “GoLang”) и др.

На базах данных балансировка нагрузки может быть осуществлена такими методами, как: репликация данных создание копий базы данных на нескольких серверах (запросы от приложения могут быть распределены между этими репликами, чтобы снизить нагрузку на отдельные серверы), фрагментация данных разделение данных на несколько фрагментов и их распределение по разным серверам (каждый сервер отвечает только за определенную часть данных, это позволяет распределить нагрузку на несколько серверов и обеспечить более равномерное распределение запросов), балансировка данных на СУБД уровнях и уровнях приложений и др.

Реверс-прокси это прокси-сервер, который принимает запросы от клиентов и перенаправляет их на один или несколько серверов внутри сети. Он также является одним из элементов балансировки нагрузки. Часто реверс-прокси используют в сочетании с другими методами балансировки нагрузки.