distributed-computing/tasks/mironov-eo/lab_7
2023-12-16 11:12:30 +03:00
..
README.md mironov-eo-lab-7 2023-12-16 11:12:30 +03:00

Отчет по лабораторной работе №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. Шардирование. Одна копия БД разбивается на части, которые работают на разных серверах.

Реверс-прокси - тип прокси при котором один внешний запрос транслируется на один или несколько внутренних серверов. Описал до этого