DAS_2023_1/martysheva_tamara_lab_7/README.md

23 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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