[Л/Р 7] Мельников Кирилл #159

Merged
v.moiseev merged 1 commits from KirillMelnikov/distributed-computing:melnikov-ky-lab-7 into main 2023-12-21 00:15:21 +04:00
Showing only changes of commit 8c4bcc03c7 - Show all commits

View File

@ -0,0 +1,31 @@
# Отчет по лабораторной работе №7
Выполнил студент гр. ИСЭбд-41 Мельников К.Ю.
## Задачи
Написать небольшое эссе (буквально несколько абзацев) своими словами. А помогут Вам в этом вопросы из списка:
1. Какие алгоритмы и методы используются для балансировки нагрузки?
2. Какие открытые технологии существуют для балансировки нагрузки?
3. Как осуществляется балансировка нагрузки на базах данных?
4. Реверс-прокси как один из элементов балансировки нагрузки.
## Эссе
1. Алгоритмы и методы балансировки нагрузки:
- Раунд-робин: запросы распределяются поочередно между серверами. Этот метод прост в реализации, но не всегда эффективен, так как не учитывает актуальную нагрузку серверов.
- Взвешенный раунд-робин: каждому серверу присваивается вес в соответствии с его производительностью. Запросы распределяются пропорционально весам серверов.
- IP-хэширование: определенный хеш-алгоритм применяется к IP-адресу клиента, и на основе полученного значения запрос направляется к соответствующему серверу. Это позволяет соблюдать сессионную устойчивость, так как один и тот же IP всегда будет направляться на один сервер.
- Адаптивный балансировщик нагрузки: этот алгоритм учитывает актуальную нагрузку серверов и распределяет запросы исходя из их производительности. Он автоматически адаптируется к изменениям в нагрузке.
2. Открытые технологии для балансировки нагрузки:
- Nginx: это популярный веб-сервер и обратный прокси, который может использоваться для балансировки нагрузки между серверами. Он также обладает другими полезными функциями, такими как кеширование и SSL-терминация.
- HAProxy: это высокопроизводительный обратный прокси и балансировщик нагрузки, который распространяется в виде открытого программного обеспечения. Он предоставляет гибкие настройки и эффективно распределяет запросы.
- Apache HTTP Server: этот сервер сочетает в себе функциональности веб-сервера и обратного прокси. Он поддерживает различные методы балансировки нагрузки, такие как раунд-робин и IP-хэширование.
3. Балансировка нагрузки на базах данных может быть достигнута различными методами. Один из подходов - это использование мастер-слейв репликации, где один сервер является мастером, который принимает записи, а другие серверы являются его слейвами и дублируют данные. Другой метод - это шардинг, при котором данные разбиваются на несколько фрагментов и хранятся на разных серверах. Также существуют специализированные инструменты, такие как ProxySQL, которые предоставляют балансировку нагрузки для баз данных.
4. Реверс-прокси является одним из основных элементов балансировки нагрузки. Он действует как посредник между клиентом и сервером, принимая запросы от клиента и перенаправляя их на множество серверов. Реверс-прокси позволяет распределить нагрузку между серверами, управлять соединениями и обеспечивать дополнительные функции, такие как кэширование и SSL-терминация.
Балансировка нагрузки является неотъемлемой частью современных IT-решений, обеспечивая стабильность, производительность и масштабируемость систем. Это лишь некоторые аспекты и методы балансировки нагрузки, и выбор конкретных подходов зависит от требований и особенностей каждого проекта.