DAS_2024_1/ismailov_rovshan_lab_7/readme.md

25 lines
4.1 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.

# Лабораторная работа 7 - Балансировка нагрузки в распределённых системах с использованием открытых технологий на практических примерах
## ПИбд-42 || Исмаилов Ровшан
### Понятие балансировки нагрузки
Балансировка нагрузки представляет собой процесс эффективного распределения входящих запросов между различными серверами для предотвращения перегрузки одного из них, что обеспечивает стабильную работу системы и её масштабируемость.
#### Алгоритмы и подходы к балансировке нагрузки
> 1. **Round Robin (круговой алгоритм):** запросы обрабатываются серверами по очереди, без учета текущей загрузки.
> 2. **Least Connections (минимум соединений):** запрос отправляется на сервер с наименьшим количеством активных соединений, что помогает оптимизировать нагрузку.
> 3. **Weighted Round Robin (взвешенная круговая балансировка):** каждому серверу присваивается определённый вес, который регулирует количество запросов, которые сервер может обработать за единицу времени.
#### Открытые технологии для балансировки нагрузки
> **Nginx** один из самых популярных инструментов, который функционирует как прокси-сервер и поддерживает различные алгоритмы балансировки нагрузки.
> **HAProxy** высокоэффективное решение для балансировки трафика с возможностью настройки различных алгоритмов.
> **Azure** облачная платформа от Microsoft, предоставляющая возможности для балансировки нагрузки с использованием встроенных инструментов.
#### Балансировка нагрузки для баз данных
Одним из эффективных подходов является разделение нагрузки между операциями чтения и записи:
- Запросы на чтение перенаправляются на реплики базы данных (read replicas), что помогает разгрузить основную базу данных.
- Запросы на запись обрабатываются основной базой данных (master), которая содержит актуальные данные.
#### Реверс-прокси
Реверс-прокси выступает в роли посредника между клиентами и серверами, обеспечивая защиту внутренней инфраструктуры и оптимизируя распределение запросов. Например, **NGINX**, выполняющий функции реверс-прокси, может не только балансировать нагрузку между серверами, но и кешировать данные, а также защищать систему от различных типов атак, включая DDoS.
Преимущества использования реверс-прокси заключаются в интеграции множества функций: от балансировки нагрузки до обеспечения безопасности и ускорения доставки контента пользователям.