[Л/Р 7] Насыбуллов Адель #199

Open
Adelkaks wants to merge 1 commits from Adelkaks/distributed-computing:nasybullov-ai-lab-7 into main
Showing only changes of commit 26326b4a5c - Show all commits

View File

@ -0,0 +1,24 @@
# Отчет по лабораторной работе №7
Выполнил студент гр. ИСЭбд-41 Насыбуллов А.И.
## Задачи
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
1. Какие алгоритмы и методы используются для балансировки нагрузки?
2. Какие открытые технологии существуют для балансировки нагрузки?
3. Как осуществляется балансировка нагрузки на базах данных?
4. Реверс-прокси как один из элементов балансировки нагрузки.
## Эссе
Балансировка нагрузки предназначена для равномерного распределения трафика и нагрузки между несколькими серверами или ресурсами. Она осуществляется с целью оптимизации производительности системы, улучшения доступности и минимизации риска перегрузки одного сервера. Классический пример - циклический перебор, когда балансировщик нагрузок отправляет по очереди запрос каждому серверу. Чем больше серверов тем меньше приходится нагрузки на каждого из них. Улучшенной версией является взвешенный циклический перебор, где каждому серверу назначаются веса мощности.
Среди открытых технологий для балансировки нагрузки можно выделить Nginx. Nginx очень популярен для распределения HTTP и HTTPS трафика с целью достижения равномерной загрузки между серверами. В качестве примеров еще можно выделить Apache HTTP Server и HAProxy.
В контексте баз данных можно выделить следующие подходы к реализации балансировки нагрузки:
1. Горизонтальное масштабирование шардирование, т.е. разбиение данные на несколько фрагментов, которые хранятся на отдельных серверах;
2. Вертикальное масштабирование на сервере увеличиваются производительность за счет добавления более мощного оборудования;
3. Репликация распределение нагрузок на чтение данных.
Обратный прокси это добавление прокси-сервера между клиентами и серверами базы данных. Прокси-сервер может распределить запросы от клиентов между несколькими серверами баз данных на основе различных алгоритмов балансировки нагрузки. Одним из таких алгоритмов является вышеупомянутая библиотека NGINX.