DAS_2024_1/dozorova_alena_lab_7/readme.md

3.5 KiB
Raw Blame History

Балансировка нагрузки предполагает равномерную нагрузку вычислительных узлов (процессора многопроцессорной ЭВМ или компьютера в сети) Следует различать статическую и динамическую балансировки, где первая выполняется до начала выполнения распределенного приложения, а вторая в процессе. Приведем примеры алгоритмов балансировки: • Круговой алгоритм: - распределение входящих запросов между несколькими серверами в порядке циклической очередности. Модификации: o Взвешенный циклический перебор, учитывающий мощность серверов o Динамический круговой алгоритм, который учитывает текущую нагрузку на серверы при распределении запросов. • Наименьшее количество соединений - направление входящих запросов на сервер с наименьшим количеством активных соединений в данный момент времени. Модификации: o Взвешенное наименьшее количество соединений направляет запросы на сервер с наименьшим соотношением активных соединений к его назначенному весу. • Наименьшее время отклика - направление запросов на сервер, который демонстрируют наилучшую производительность в данный момент. Он учитывает два ключевых фактора: время отклика сервера и количество активных соединений. • Наименьший объем трафика динамический алгоритм балансировки нагрузки, который направляет входящие запросы на сервер, передающий наименьший объем данных в текущий момент. Существует достаточно много различных технологий как для программной, так и аппаратной балансировки. Наиболее популярные решения это Nginx и OpenELB, MetalLB для Kubernetes. Для обеспечения балансировка нагрузки на базах данных используется механизм репликации. Балансировка нагрузки заключается в распределении запросов от пользователей по разным копиям (репликам) базы данных. Реверс-прокси — это сервер, который находится перед веб-серверами и пересылает запросы от клиента на эти веб-серверы. Он не является в полной мере балансировщиком, но может выполнять его функцию при большой нагрузке на систему.