diff --git a/ismailov_rovshan_lab_7/readme.md b/ismailov_rovshan_lab_7/readme.md new file mode 100644 index 0000000..1a66508 --- /dev/null +++ b/ismailov_rovshan_lab_7/readme.md @@ -0,0 +1,24 @@ +# Лабораторная работа 7 - Балансировка нагрузки в распределённых системах с использованием открытых технологий на практических примерах +## ПИбд-42 || Исмаилов Ровшан + +### Понятие балансировки нагрузки +Балансировка нагрузки представляет собой процесс эффективного распределения входящих запросов между различными серверами для предотвращения перегрузки одного из них, что обеспечивает стабильную работу системы и её масштабируемость. + +#### Алгоритмы и подходы к балансировке нагрузки +> 1. **Round Robin (круговой алгоритм):** запросы обрабатываются серверами по очереди, без учета текущей загрузки. +> 2. **Least Connections (минимум соединений):** запрос отправляется на сервер с наименьшим количеством активных соединений, что помогает оптимизировать нагрузку. +> 3. **Weighted Round Robin (взвешенная круговая балансировка):** каждому серверу присваивается определённый вес, который регулирует количество запросов, которые сервер может обработать за единицу времени. + +#### Открытые технологии для балансировки нагрузки +> **Nginx** – один из самых популярных инструментов, который функционирует как прокси-сервер и поддерживает различные алгоритмы балансировки нагрузки. +> **HAProxy** – высокоэффективное решение для балансировки трафика с возможностью настройки различных алгоритмов. +> **Azure** – облачная платформа от Microsoft, предоставляющая возможности для балансировки нагрузки с использованием встроенных инструментов. + +#### Балансировка нагрузки для баз данных +Одним из эффективных подходов является разделение нагрузки между операциями чтения и записи: + - Запросы на чтение перенаправляются на реплики базы данных (read replicas), что помогает разгрузить основную базу данных. + - Запросы на запись обрабатываются основной базой данных (master), которая содержит актуальные данные. + +#### Реверс-прокси +Реверс-прокси выступает в роли посредника между клиентами и серверами, обеспечивая защиту внутренней инфраструктуры и оптимизируя распределение запросов. Например, **NGINX**, выполняющий функции реверс-прокси, может не только балансировать нагрузку между серверами, но и кешировать данные, а также защищать систему от различных типов атак, включая DDoS. +Преимущества использования реверс-прокси заключаются в интеграции множества функций: от балансировки нагрузки до обеспечения безопасности и ускорения доставки контента пользователям.