diff --git a/kashin_maxim_lab_7/readme.md b/kashin_maxim_lab_7/readme.md new file mode 100644 index 0000000..d2fafa4 --- /dev/null +++ b/kashin_maxim_lab_7/readme.md @@ -0,0 +1,60 @@ +# Кашин Максим ПИбд-42 + +## Введение + +Балансировка нагрузки является важным аспектом проектирования распределенных систем, который позволяет равномерно распределять запросы и ресурсы между несколькими серверами или компонентами. Это помогает улучшить производительность, доступность и надежность систем. + +## Алгоритмы и Методы Балансировки Нагрузки + +Существует несколько основных алгоритмов и методов, применяемых для балансировки нагрузки: + +| Алгоритм | Описание | Пример использования | +|---------------------------|------------------------------------------------------------------------------------------------------|------------------------------------------| +| **Круговая Робин** | Запросы направляются по очереди на каждый сервер, что обеспечивает равномерное распределение нагрузки. | Подходит для небольших систем с равномерной нагрузкой. | +| **Наименьшая Загруженность** | Запросы направляются на наименее загруженный сервер, что увеличивает скорость обработки. | Используется в системах с разной производительностью серверов. | +| **На основе IP-адреса** | Запросы от одного и того же клиента направляются на один и тот же сервер. | Полезно для сохранения состояния сессии пользователей. | + +## Открытые Технологии для Балансировки Нагрузки + +Среди открытых технологий для балансировки нагрузки выделяются: + +### 1. HAProxy +- **Описание:** Высокопроизводительная балансировка нагрузки и управление трафиком. +- **Протоколы:** HTTP, TCP. +- **Применение:** Используется в крупных веб-приложениях для равномерного распределения запросов. + +### 2. Nginx +- **Описание:** Веб-сервер и реверс-прокси, обеспечивающий эффективную балансировку нагрузки и кэширование контента. +- **Протоколы:** HTTP, HTTPS. +- **Применение:** Часто используется для обеспечения высокой доступности веб-сайтов. + +## Балансировка Нагрузки на Базах Данных + +Балансировка нагрузки на базах данных может осуществляться через: + +### Репликацию +- **Описание:** Данные копируются на несколько серверов, и запросы направляются к репликам в зависимости от их загруженности. +- **Преимущества:** + - Увеличение скорости обработки запросов. + - Повышение доступности данных. + +### Пример таблицы репликации + +| Сервер | Тип | Статус | +|--------------|-----------|----------------| +| DB-Replica-1 | Master | Активен | +| DB-Replica-2 | Slave | Ожидание | +| DB-Replica-3 | Slave | Ожидание | + +## Роль Реверс-прокси в Балансировке Нагрузки + +Реверс-прокси выполняет следующие функции: + +- **Прием запросов:** Принимает запросы от клиентов и перенаправляет их на соответствующие серверы. +- **Скрытие архитектуры:** Позволяет скрыть внутреннюю архитектуру системы. +- **Кэширование:** Обеспечивает кэширование контента для повышения скорости загрузки. +- **Фильтрация трафика:** Позволяет фильтровать входящий трафик и защищать внутренние сервисы. + +## Заключение + +Балансировка нагрузки играет критически важную роль в обеспечении высокой доступности и производительности распределенных систем. Использование современных технологий и методов позволяет эффективно управлять ресурсами в условиях растущих требований пользователей. Применение различных алгоритмов, открытых технологий и методов балансировки на базах данных способствует созданию надежных и высокопроизводительных систем.