DAS_2024_1/morozov_vladimir_lab_7
..
readme.md

Лабораторная работа #7 - Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах

Балансировка нагрузки

Балансировка нагрузки - это распределение сетевого трафика между серверной аппаратурой, которая поддерживает работу некоторого сетевого ресурса, к примеру сайта. Что дает балансировка нагрузки?

  • Увеличивает надежность ресурса, так как позволяет ему оставаться "на плаву", когда спрос на него резко возрастает
  • Увеличивет эффективность использования ресурса
  • Обеспечивает более гибкую масштабируемость по горизонтали

Алгоритмы и методы используются балансировки нагрузки

Есть 3 вида балансировки по уронявм OSI:

  • Сетевой, который заключается в использовании нескольких физических серверов, которые вместе могут обрабатывать один запрос
  • Транспортный, который заключается в представлении посредника между сервером и клиентом
  • Прикладной, который заключается в использовании посредника между сервером и клиентом, а также в распределении обязанностей между серверами

Алгоритмы балансировки:

  • Round Robin (По-круговой). Все запросы будут поочередно распределяться на имеющиеся серверы. Просто и эффективно, НО алгоритм не учитывает мощность каждого сервера
  • Weighted Round Robin. Как предыдущий, но теперь алгоритм учитывает мощность каждого сервера и в зависимости от этого может назначать на более мощный сервер больше запросов.
  • Least Connections. (Наименьшее количество подключений). Последующие запросы будут распределены на менее загруженные серверы.
  • Least Response Time (Наименьшее время отклика). Последующие запросы будут распределены на менее загруженный сервер, у которого время среднего отклика максимален
  • Sticky Sessions. В зависимости от ip каждый пользователь будет прикреплен к определенному серверу.

Типы балансировки нагрузки:

  • Аппаратный. Использование специального аппаратного оборудования со спец ПО
  • Программное обеспечение. ПО, которое работает с виртуальными серверами и распределяет нагрузку между ними
  • Виртуальный. Объединение двух предыдущих типов.
  • Облачный. Использование облачных инфраструктуры.

Как осуществляется балансировка нагрузки на базах данных?

Можно выделить несколько способов:

  1. Создание нескольких серверов бд, которые будут вместе обрабатывать один запрос. Здесть стоит сказать, что сервера получатют роли, один сервер может только читать данные из бд, а другой может уже вписывать данные в бд.
  2. Использование индексов в бд, для ускорения работы бд
  3. Иметь запасной бд сервер, который будет подключен в случае увеличения нагрузки

Реверс-прокси как один из элементов балансировки нагрузки.

Понятия балансировщик нагрузки и реверс-прокси можно назвать взаимозаменяемыми, так как оба выполняют одну функцию: распределют запросы клиента между серверами и возвращает ему ответ.