main #3

Merged
Hlop4ik4 merged 237 commits from v.moiseev/distributed-computing:main into main 2024-01-06 17:16:53 +04:00
Showing only changes of commit 3e23cc1880 - Show all commits

View File

@ -0,0 +1,28 @@
# Отчет по лабораторной работе №7
Выполнил студент гр. ИСЭбд-41 Миронов Е.О.
## Задачи
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
1. Какие алгоритмы и методы используются для балансировки нагрузки?
2. Какие открытые технологии существуют для балансировки нагрузки?
3. Как осуществляется балансировка нагрузки на базах данных?
4. Реверс-прокси как один из элементов балансировки нагрузки.
## Эссе
Смысл всех алгоритмов балансировки сводится к тому, чтобы равномерно распределить нагрузку на все сервера. Существует множество разных алгоритмов, но в основном они подразделяется на 2 вида:
1. Статические - запросы распределяются на сервера независимо от их загруженности.
2. Динамические - запросы отправляются на наименее загруженный сервер
Способы балансировки тоже бывают разными.
1. Балансировка на низком уровне. Имею ввиду 3-4 уровень модели OSI (не помню как называются), протоколами DNS и DHCP. Как пример такую балансировку можно настроить на маршрутизаторе. Думаю туда же подойдет поднятый на сервере NAT или низкоуровневый прокси.
2. Балансировка на прикладном уровне. Здесь подойдет любой веб-сервер. Ngnix, apache, iis, kestrel. По факту тот же прокси, но на протоколе HTTP.
В контексте баз данных встречаются 2 понятия.
1. Репликация. Поднимаются несколько копий БД и постоянно синхронизируются. К примеру существует способ репликации при котором 1 экземпляр БД работает на изменение данных (вставка, изменение, удаление), а 2 экземпляр только на чтение. В целом от обычной балансировки особо не отличается.
2. Шардирование. Одна копия БД разбивается на части, которые работают на разных серверах.
Реверс-прокси - тип прокси при котором один внешний запрос транслируется на один или несколько внутренних серверов. Описал до этого