Merge pull request 'martysheva_tamara_lab_7 is ready' (#69) from martysheva_tamara_lab_7 into main

Reviewed-on: http://student.git.athene.tech/Alexey/DAS_2023_1/pulls/69
This commit is contained in:
Alexey 2023-12-28 11:10:13 +04:00
commit 9e7b0fcc03

View File

@ -0,0 +1,23 @@
# Лабораторная работа №7 - Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах
Эссе по вопросам:
* Какие алгоритмы и методы используются для балансировки нагрузки?
* Какие открытые технологии существуют для балансировки нагрузки?
* Как осуществляется балансировка нагрузки на базах данных?
* Реверс-прокси как один из элементов балансировки нагрузки.
***
## *Ход работы:*
Балансировка нагрузки в распределённых системах используется для распределения запросов по серверам или БД и обеспечения отказоустойчивости.
Основные алгоритмы, используемые для балансировки: алгоритм кругового обслуживания (запросы передаются серверам по кругу),
алгоритм взвешенного цикличного перебора (схож с 1, но более мощные сервера берут на себя больше запросов), алгоритм
наименьшего количества соединений (запрос передаётся серверу с наименьшим количеством активных подключений) и другие.
Популярными технологиями для обеспечения балансировки нагрузки являются NGINX и Apache HTTP Server. NGINX широко используется в качестве
обратного прокси-сервера для балансировки нагрузки, Apache HTTP Server может использовать разные модули для распределения
трафика между серверами.
Балансировка нагрузки на базах данных может осуществляться методом репликации - синхронизации содержимого нескольких копий базы данных.
Балансировка достигается распределением запросов по копиям БД. Кроме того, можно использовать процесс разделения данных на логические
части и хранения этих частей на разных серверах - шардинг.
Для распределения запросов между несколькими серверами может использоваться реверс-прокси: такой сервер является "посредником" в процессе обмена
запросами. Реверс-прокси принимает и передает запрос нужному серверу от пользователя, а затем получает и передает ответ от сервера обратно пользователю.