DAS_2024_1/klyushenkova_ksenia_lab_7/README.md
2024-12-23 21:18:49 +04:00

45 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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