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