forked from Alexey/DAS_2024_1
Merge pull request 'zhimolostnova lab 7 complete' (#96) from zhimolostnova_anna_lab_7 into main
Reviewed-on: Alexey/DAS_2024_1#96
This commit is contained in:
commit
fb37a53f66
49
zhimolostnova_anna_lab_7/README.md
Normal file
49
zhimolostnova_anna_lab_7/README.md
Normal file
@ -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. Реверс-прокси – это сервер, который принимает запросы от клиентов и перенаправляет
|
||||||
|
их на внутренние серверы. Он может использоваться для балансировки нагрузки, распределяя запросы между
|
||||||
|
несколькими серверами в зависимости от состояния системы и доступности ресурсов.
|
||||||
|
|
||||||
|
Подводя итог, балансировка нагрузки это необходимый элемент для построения надёжных и
|
||||||
|
масштабируемых распределённых систем, а использование современных открытых технологий помогает эффективно
|
||||||
|
распределять запросы между серверами, улучшая производительность систем.
|
Loading…
Reference in New Issue
Block a user