From f7032a55fcf267523086080f1851a7760f84336c Mon Sep 17 00:00:00 2001 From: Anna Sentimental Date: Mon, 18 Dec 2023 21:52:01 +0400 Subject: [PATCH] laba done --- tasks/zinoveva-ad/lab_7/README.md | 57 +++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tasks/zinoveva-ad/lab_7/README.md diff --git a/tasks/zinoveva-ad/lab_7/README.md b/tasks/zinoveva-ad/lab_7/README.md new file mode 100644 index 0000000..1469b97 --- /dev/null +++ b/tasks/zinoveva-ad/lab_7/README.md @@ -0,0 +1,57 @@ +# Отчет по лабораторной работе №7 + +Выполнила студентка гр. ИСЭбд-41 Зиновьева А. Д. + +## Какие алгоритмы и методы используются для балансировки нагрузки? + +Балансировка нагрузки - это процесс распределения рабочих задач между серверами или ресурсами, чтобы оптимизировать производительность и обеспечить стабильную работу системы. Алгоритмы и методы, которые используются для балансировки нагрузки: + +1. Round-Robin DNS (Round Robin): Клиент отправляет DNS-запрос для определенного домена, DNS-сервер отвечает клиенту, возвращает список IP-адресов серверов, связанных с этим доменом, обеспечивая равномерное распределение нагрузки. + +2. Весовая балансировка (Weighted Round Robin): У каждого сервера устанавливается вес. Список серверов и их весов сохраняется в балансировщике нагрузки. DNS возвращает IP-адреса в зависимости от их веса, который может быть связан с производительностью сервера, нагрузка получается гибко распределенной. + +3. Распределенная хэш-функция (Distributed Hash Tables, DHT): Каждый сервер отвечает за свою часть IP-пространства, что позволяет быстро и эффективно распределять нагрузку. + +4. Балансировка на основе IP: Когда клиент отправляет запрос на сервер, пакет данных включает IP-адрес, запрос клиента попадает на балансировщик нагрузки, который анализирует IP для определения, на какой сервер направить запрос. Трафик получается равномерным. + +5. Балансировка на основе порта: Сервер балансировки определяет, на какой порт отправить запрос, исходя из информации о портах, полученных от клиента. + +6. Балансировка с использованием состояния (Stateful Load Balancing): Сервер балансировки учитывает состояние каждого сервера, чтобы определить, какой из них наиболее подходит для обработки запроса. + +Оптимальный выбор алгоритма или метода для балансировки нагрузки будет зависеть от конкретных требований и характеристик системы. + +## Какие открытые технологии существуют для балансировки нагрузки? + +1. NGINX: популярный веб-сервер и обратный прокси, который может выполнять функции балансировки нагрузки. Он распределяет трафик между несколькими серверами, поддерживает разные алгоритмов балансировки нагрузки и имеет гибко настраивается. + +2. HAProxy: работает на уровне TCP/HTTP. Программа предоставляет возможность балансировки нагрузки между серверами приложений. Она обеспечивает высокую производительность, поддерживает много различных протоколов. (также поддерживает SSL) + +3. Apache HTTP Server: этот веб-сервер с функциями балансировки нагрузки. У него есть модуль mod_proxy_balancer, он позволяет распределить трафик между несколькими серверами. + +4. IPVS (IP Virtual Server): модуль ядра Linux, который обеспечивает балансировку нагрузки на уровне IP. Он позволяет распределять трафик между несколькими серверами на основе разных алгоритмов. + +Каждая из них имеет свои плюсы и минусы. + +## Как осуществляется балансировка нагрузки на базах данных? + +Балансировка нагрузки на базах данных может быть сложной задачей, так как базы данных являются критическими компонентами веб-приложений. Однако, есть несколько подходов и методов, которые помогают решить эту задачу: + +1. Репликация данных - процесс создания копий базы данных на нескольких серверах. Один сервер назначается сервером мастер, который принимает записи, а остальные серверы являются серверами слейвами, которые получают обновления из мастер-сервера. Запросы на чтение могут быть перенаправлены на любой из серверов слейвов, распределяя нагрузку между ними. + +2. Шардинг - разбиения базы данных на несколько независимых фрагментов (шарды) и их распределение по разным серверам/узлам. Каждый шард содержит только часть данных, и клиенты направляют запросы к соответствующему шарду. Это позволяет распределить нагрузку между серверами. + +3. Подходы на основе запросов - эти методы используются для маршрутизации запросов БД на основе типа запроса или определенных правил. Например, можно настроить прокси-сервер или брокер сообщений для маршрутизации запросов к соответствующим серверам БД. + +## Реверс-прокси как один из элементов балансировки нагрузки. + +Реверс-прокси - это сервер, расположенный между клиентом и серверами БД, и его главная задача заключается в перенаправлении запросов от клиента к соответствующим серверам БД. + +Реверс-прокси выполняет функции: +1. Балансировка нагрузки; +2. Кеширование; +3. Шифрование и безопасность (SSL); +4. Обработка статических файлов; +5. Фильтрация запросов; +6. Обратная маршрутизация. + +Использование реверс-прокси позволяет более эффективно распределить нагрузку, улучшить производительность и обеспечить безопасность. \ No newline at end of file