21 lines
4.6 KiB
Markdown
21 lines
4.6 KiB
Markdown
|
||
## Лабораторная работа 7. Вариант 4.
|
||
### Задание
|
||
Написать небольшое эссе своими словами по вопросам из списка:
|
||
|
||
- Какие алгоритмы и методы используются для балансировки нагрузки?
|
||
- Какие открытые технологии существуют для балансировки нагрузки?
|
||
- Как осуществляется балансировка нагрузки на базах данных?
|
||
- Реверс-прокси как один из элементов балансировки нагрузки.
|
||
|
||
### Эссе
|
||
`Балансировка нагрузки в распределенных системах` – это процесс распределения рабочей нагрузки между несколькими узлами или ресурсами, с целью равномерного распределения нагрузки и обеспечения эффективного использования ресурсов системы.
|
||
|
||
При реализации балансировки нагрузки в распределённых системах, используются такие алгоритмы, как: `наименьшая нагрузка` – алгоритм, направляющий запросы на узел с наименьшим количеством активных соединений или наименьшей загрузкой, `наименьшее время отклика` – алгоритм, выбирающий узел с наименьшим временем отклика на предыдущие запросы, `циклический алгоритм` – алгоритм, циклично направляющий каждый новый запрос на следующий узел в очереди и `прогнозирующие алгоритмы` – алгоритмы, использующие исторические данные и статистику для прогнозирования будущей нагрузки и распределения запросов.
|
||
|
||
Для балансировки нагрузки существует множество технологий. В рамках данного курса была затронута одна из них – `Nginx`. `Nginx` предоставляет функциональность распределения запросов между несколькими серверами с использованием различных алгоритмов балансировки нагрузки, таких как циклический алгоритм и взвешенный циклический алгоритм. Помимо Nginx существуют такие открытые технологии балансировки нагрузки, как `Apache HTTP Server`, `Traefik` (один из новичков на “GoLang”) и др.
|
||
|
||
На базах данных балансировка нагрузки может быть осуществлена такими методами, как: `репликация данных` – создание копий базы данных на нескольких серверах (запросы от приложения могут быть распределены между этими репликами, чтобы снизить нагрузку на отдельные серверы), `фрагментация данных` – разделение данных на несколько фрагментов и их распределение по разным серверам (каждый сервер отвечает только за определенную часть данных, это позволяет распределить нагрузку на несколько серверов и обеспечить более равномерное распределение запросов), `балансировка данных на СУБД уровнях и уровнях приложений` и др.
|
||
|
||
`Реверс-прокси` – это прокси-сервер, который принимает запросы от клиентов и перенаправляет их на один или несколько серверов внутри сети. Он также является одним из элементов балансировки нагрузки. Часто реверс-прокси используют в сочетании с другими методами балансировки нагрузки.
|