DAS_2024_1/dozorova_alena_lab_7/readme.md

18 lines
3.5 KiB
Markdown
Raw Normal View History

2024-10-19 14:04:46 +04:00
**Балансировка нагрузки** предполагает равномерную нагрузку вычислительных узлов (процессора многопроцессорной ЭВМ или компьютера в сети)
2024-10-19 14:04:46 +04:00
Следует различать _статическую_ и _динамическую_ балансировки, где первая выполняется до начала выполнения распределенного приложения, а вторая в процессе.
Приведем примеры алгоритмов балансировки:
* *Круговой алгоритм*: - распределение входящих запросов между несколькими серверами в порядке циклической очередности. Модификации:
2024-10-19 14:18:21 +04:00
- *Взвешенный циклический перебор*, учитывающий мощность серверов
- *Динамический круговой алгоритм*, который учитывает текущую нагрузку на серверы при распределении запросов.
* *Наименьшее количество соединений* - направление входящих запросов на сервер с наименьшим количеством активных соединений в данный момент времени. Модификации:
- *Взвешенное наименьшее количество соединений* направляет запросы на сервер с наименьшим соотношением активных соединений к его назначенному весу.
* *Наименьшее время отклика* - направление запросов на сервер, который демонстрируют наилучшую производительность в данный момент. Он учитывает два ключевых фактора: время отклика сервера и количество активных соединений.
* *Наименьший объем трафика* динамический алгоритм балансировки нагрузки, который направляет входящие запросы на сервер, передающий наименьший объем данных в текущий момент.
2024-10-19 14:04:46 +04:00
Существует достаточно много различных технологий как для программной, так и аппаратной балансировки. Наиболее популярные решения это Nginx и OpenELB, MetalLB для Kubernetes.
2024-10-19 14:04:46 +04:00
Для обеспечения балансировка нагрузки на базах данных используется механизм **репликации**. Балансировка нагрузки заключается в распределении запросов от пользователей по разным копиям (репликам) базы данных.
2024-10-19 14:04:46 +04:00
**Реверс-прокси** — это сервер, который находится перед веб-серверами и пересылает запросы от клиента на эти веб-серверы. Он не является в полной мере балансировщиком, но может выполнять его функцию при большой нагрузке на систему.