Седьмая лабораторная готова
This commit is contained in:
parent
7f5ad611b5
commit
a3c467e867
19
polevoy_sergey_lab_7/README.md
Normal file
19
polevoy_sergey_lab_7/README.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
### Лабораторная работа № 7. Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах
|
||||||
|
|
||||||
|
В распределённых системах может использоваться как вертикальное, так и горизонтальное масштабирование. Горизонтальное масштабирование предполагает создание большего количества экземляров одного компонента системы. И для того, чтобы определять, какому *работающему* экземпляру передать запрос/задачу(при этом не допустив ситуации, когда один экземпляр постоянно работает, а остальные простаивают), применяется балансировщик нагрузки.
|
||||||
|
|
||||||
|
Существует несколько алгоритмов реализации балансировки нагрузки:
|
||||||
|
- Циклический перебор (Round Robin): запросы распределяются между серверами по очереди.
|
||||||
|
- Взвешенный циклический перебор (Weighted Round Robin): каждый сервер имеет вес в зависимости от производительности, более мощные серверы берут на себя больше запросов.
|
||||||
|
- Наименьшее количество подключений (Least Connections): запросы направляются на сервер с наименьшим количеством активных соединений.
|
||||||
|
|
||||||
|
Имеются и открытые технологии для балансировки нагрузки, например:
|
||||||
|
- Nginx: Известный балансировщик на уровне http/tcp
|
||||||
|
- Apache: В каком-то смысле похож на nginx, но применяет иные подходы к реализации
|
||||||
|
- Kubernetes Ingress: Управляет балансировкой в контейнерных средах.
|
||||||
|
|
||||||
|
Применять балансировку нагрузки можно и для баз данных. Используются разные подходы, например:
|
||||||
|
- Репликация: Данные можно копировать по нескольким базам данных, возможно, размещённых в разных местах. Таким образом клиент может обращаться к ближайшей реплике или использовать другую в случае сбоя.
|
||||||
|
- Шардинг: При таком подходе создаётся некоторое количество шардов(осколков), каждый из которых хранит свои данные(что и отличает шардинг от репликаций баз данных). Простейший и наивный пример с двумя шардами - в первой инсталляции находятся сущности с нечётными идентификаторами, во второй - с чётными.
|
||||||
|
|
||||||
|
Реверс-прокси - один из ключевых элементов балансировки нагрузки. В его задачи входит получение запроса, его перенаправление на нужный сервер и возврат ответа. Таким образом подобный сервер выступает в качестве посредника в цепочке запрос-ответ.
|
Loading…
Reference in New Issue
Block a user