.. | ||
README.md |
Клюшенкова Ксения ПИбд-42
Лабораторная работа №7 - Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах
Задание:
Написать небольшое эссе своими словами.
- Какие алгоритмы и методы используются для балансировки нагрузки?
- Какие открытые технологии существуют для балансировки нагрузки?
- Как осуществляется балансировка нагрузки на базах данных?
- Реверс-прокси как один из элементов балансировки нагрузки.
Эссе:
Балансировка нагрузки представляет собой процесс распределения запросов и информационных потоков между несколькими вычислительными устройствами с целью оптимизации их функционирования. Это позволяет более эффективно использовать доступные ресурсы, ускорять выполнение задач и обеспечивать доступность приложений.
Для балансировки нагрузки используются следующие методы:
- Round Robin: Запросы распределяются по серверам по кругу.
- Least Connections: Запрос отправляется на сервер, который в данный момент имеет наименьшее количество активных подключений.
- Weighted Round Robin: Модификация Round Robin, где серверам присваиваются веса. Серверы с большим весом получают больше запросов.
- Weighted Least Connections: Серверам присваиваются веса (позволяет учитывать производительность или мощность серверов).
- Health Checks: Сервисы динамически проверяют состояние серверов и направляют трафик только на работающие узлы.
- Active-Passive: Один активный сервер обслуживает запросы, а второй готов к работе в случае сбоя первого.
- Content-Based Routing: Запросы маршрутизируются на основе содержимого.
- Adaptive Load Balancing: Методы распределения нагрузки динамически меняются в зависимости от текущей загруженности системы и времени отклика.
Существующие открытые технологии для балансировки нагрузки:
- NGINX: Поддерживает загрузку балансировки и может конфигурироваться для различных методов.
- HAProxy: Поддерживает как TCP, так и HTTP, а также предлагает расширенные возможности мониторинга.
- Kubernetes: Система для автоматизации развертывания, масштабирования и управления контейнеризованными приложениями.
- Traefik: Балансировщик нагрузки, непосредственно интегрирующийся с системами оркестрации.
Основные подходы к балансировке нагрузки на базы данных:
- Распределение нагрузки за счёт создания копий баз данных (Репликация).
- Разбиение даннх на части и распределение их по нескольким серверам (Шардинг).
- Кэширование (увеличивает скорость доступа к данным, храня часто запрашиваемую информацию).
- Распределение входящих запросов между несколькими серверами баз данных.
- Объединение нескольких серверов в единую систему.
Реверс-прокси — это сервер, который находится между пользователями и экземплярами приложений. Он перенаправляет запросы от пользователей в бэкенд и выполняет дополнительные функции (предоставление SSL-сертификатов и ведение логов). Он помогает распределять запросы между несколькими серверами, обеспечивая высокую доступность и масштабируемость приложений.