distributed-computing/tasks/melnikov-ky/lab_7/README.md
2023-12-18 18:37:41 +04:00

32 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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