From 0246f32bcfa1f70b63ad21a490c9119e86836f52 Mon Sep 17 00:00:00 2001 From: AnnZhimol Date: Tue, 22 Oct 2024 20:19:09 +0300 Subject: [PATCH] lab 7 complete --- zhimolostnova_anna_lab_7/README.md | 49 ++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 zhimolostnova_anna_lab_7/README.md diff --git a/zhimolostnova_anna_lab_7/README.md b/zhimolostnova_anna_lab_7/README.md new file mode 100644 index 0000000..85f75c4 --- /dev/null +++ b/zhimolostnova_anna_lab_7/README.md @@ -0,0 +1,49 @@ +# Отчет по лабораторной работе №7 + +## Задание: + +Написать небольшое эссе (буквально несколько абзацев) своими словами. + +1. Какие алгоритмы и методы используются для балансировки нагрузки? +2. Какие открытые технологии существуют для балансировки нагрузки? +3. Как осуществляется балансировка нагрузки на базах данных? +4. Реверс-прокси как один из элементов балансировки нагрузки. + +## Эссе на тему: "Балансировка нагрузки в распределённых системах при помощи открытых технологий" + +Чтобы распределить входящие запросы между несколькими серверами для обеспечения равномерного +использования ресурсов и предотвращения перегрузок, существует множество алгоритмов, справляющихся +с балансировкой нагрузки, в зависимости от специфики системы и требований к производительности. +В данном случае будет рассмотрено 3 самых популярных алгоритма. + +К примеру, Round Robin и Weighted Round Robin. Оба алгоритма являются циклическими и поочередно +распределяют запросы между серверами. Однако в отличие от обычного Round Robin, Weighted Round Robin +учитывает мощность серверов, поэтому серверы с большей производительностью получают большее +количество запросов. + +С наименьшим количество отброшенных запросов работает алгоритм Least Connections, суть которого заключается +в том, что сначала отправляются запросы серверу с наименьшим количеством активных подключений. Это помогает +равномерно распределять нагрузку в реальном времени. + +Чтобы реализовать балансировку нагрузки, можно обратиться к NGINX. Он широко известен как веб-сервер, +но также может быть использован для балансировки нагрузки на уровне приложений и HTTP-запросов. Остаётся +универсальным решением с хорошей производительностью и гибкостью, но его придётся настраивать вручную в +некоторых сценариях, где HAProxy и Traefik предоставляют автоматизированные и специализированные решения. + +Для высокопроизводительных и масштабируемых систем, требующих тонкого управления на уровне TCP и HTTP лучше +выбрать HAProxy, а Traefik идеально подходит для современных облачных архитектур и микросервисов благодаря +автоматическому обнаружению и динамической конфигурации. + +Что же касается баз данных, то балансировка нагрузки на них может осуществляться на нескольких уровнях: +уровне чтения, записи или репликации. Например, в системах с репликацией данных (как в MySQL) запросы на +чтение могут направляться на реплики, а на запись – только на мастер-узел. Это позволяет снизить нагрузку +на основной сервер базы данных и увеличить производительность системы. + +Упомянутые выше Traefik, HAProxy и NGINX являются также реверс-прокси, обеспечивая балансировку на +уровне HTTP или TCP. Реверс-прокси – это сервер, который принимает запросы от клиентов и перенаправляет +их на внутренние серверы. Он может использоваться для балансировки нагрузки, распределяя запросы между +несколькими серверами в зависимости от состояния системы и доступности ресурсов. + +Подводя итог, балансировка нагрузки это необходимый элемент для построения надёжных и +масштабируемых распределённых систем, а использование современных открытых технологий помогает эффективно +распределять запросы между серверами, улучшая производительность систем. \ No newline at end of file