DAS_2024_1/fadeeva_nastya_lab_7
2024-12-15 02:13:35 +04:00
..
README.md fadeeva_nastya_lab_7 2024-12-15 02:13:35 +04:00

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

Задание

Написать небольшое эссе. Вопросы:

  1. Какие алгоритмы и методы используются для балансировки нагрузки?
  2. Какие открытые технологии существуют для балансировки нагрузки?
  3. Как осуществляется балансировка нагрузки на базах данных?
  4. Реверс-прокси как один из элементов балансировки нагрузки.

Эссе по теме

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

Для балансировки используют некоторые алгоритмы и методы: Least Connections (минимальная нагрузка), Round Robin (круговой алгоритм), Server Health Check (состояние сервера), Least Response Time (наименьшее время ответа), Random (случайный выбор) и другие. Эти алгоритмы позволяют распределить запросы от клиентов между серверами эффективно и с учетом их текущей загруженности.

Существуем несколько открытых технологий для балансировки нагрузки, например, Nginx, HAProxy, Apache HTTP Server и другие. Они позволяют настроить прокси-серверы, которые принимают запросы от клиентов и передают их на один или несколько серверов приложений, обеспечивая тем самым равномерное распределение нагрузки.

Балансировка нагрузки на базах данных осуществляется для обеспечения доступности и производительности системы. Для этого используются специализированные инструменты, такие как ProxySQL, pgpool-II, MySQL Router и другие. Это позволяет распределять запросы к базам данных между различными узлами, тем самым позволяет разгрузить основной сервер.

Реверс-прокси — это сервер, который принимает запросы от клиентов и перенаправляет их на один или несколько серверов приложений. Он может выполнять несколько функций: балансировка нагрузки, безопасность, кэширование, SSL-терминация, мониторинг и логирование.