DAS_2024_1/ismailov_rovshan_lab_7/readme.md

4.1 KiB
Raw Blame History

Лабораторная работа 7 - Балансировка нагрузки в распределённых системах с использованием открытых технологий на практических примерах

ПИбд-42 || Исмаилов Ровшан

Понятие балансировки нагрузки

Балансировка нагрузки представляет собой процесс эффективного распределения входящих запросов между различными серверами для предотвращения перегрузки одного из них, что обеспечивает стабильную работу системы и её масштабируемость.

Алгоритмы и подходы к балансировке нагрузки

  1. Round Robin (круговой алгоритм): запросы обрабатываются серверами по очереди, без учета текущей загрузки.
  2. Least Connections (минимум соединений): запрос отправляется на сервер с наименьшим количеством активных соединений, что помогает оптимизировать нагрузку.
  3. Weighted Round Robin (взвешенная круговая балансировка): каждому серверу присваивается определённый вес, который регулирует количество запросов, которые сервер может обработать за единицу времени.

Открытые технологии для балансировки нагрузки

Nginx один из самых популярных инструментов, который функционирует как прокси-сервер и поддерживает различные алгоритмы балансировки нагрузки.
HAProxy высокоэффективное решение для балансировки трафика с возможностью настройки различных алгоритмов.
Azure облачная платформа от Microsoft, предоставляющая возможности для балансировки нагрузки с использованием встроенных инструментов.

Балансировка нагрузки для баз данных

Одним из эффективных подходов является разделение нагрузки между операциями чтения и записи:

  • Запросы на чтение перенаправляются на реплики базы данных (read replicas), что помогает разгрузить основную базу данных.
  • Запросы на запись обрабатываются основной базой данных (master), которая содержит актуальные данные.

Реверс-прокси

Реверс-прокси выступает в роли посредника между клиентами и серверами, обеспечивая защиту внутренней инфраструктуры и оптимизируя распределение запросов. Например, NGINX, выполняющий функции реверс-прокси, может не только балансировать нагрузку между серверами, но и кешировать данные, а также защищать систему от различных типов атак, включая DDoS.
Преимущества использования реверс-прокси заключаются в интеграции множества функций: от балансировки нагрузки до обеспечения безопасности и ускорения доставки контента пользователям.