DAS_2023_1/martysheva_tamara_lab_7/README.md

3.3 KiB
Raw Permalink Blame History

Лабораторная работа №7 - Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах

Эссе по вопросам:

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

Ход работы:

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

Популярными технологиями для обеспечения балансировки нагрузки являются NGINX и Apache HTTP Server. NGINX широко используется в качестве обратного прокси-сервера для балансировки нагрузки, Apache HTTP Server может использовать разные модули для распределения
трафика между серверами.

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

Для распределения запросов между несколькими серверами может использоваться реверс-прокси: такой сервер является "посредником" в процессе обмена запросами. Реверс-прокси принимает и передает запрос нужному серверу от пользователя, а затем получает и передает ответ от сервера обратно пользователю.