forked from Alexey/DAS_2024_1
Merge pull request 'kuzarin_maxim_lab_7' (#80) from kuzarin_maxim_lab_7 into main
Reviewed-on: Alexey/DAS_2024_1#80
This commit is contained in:
commit
93687ad850
13
kuzarin_maxim_lab_7/README.md
Normal file
13
kuzarin_maxim_lab_7/README.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Балансировка нагрузки в распределённых системах
|
||||||
|
*Балансировка нагрузки в распределенных системах* – это метод распределения сетевого трафика по пулу ресурсов приложения. Для этого существует достаточно большое число инструментов.
|
||||||
|
## Алгоритмы балансировки
|
||||||
|
Всё множество алгоритмов для балансировки можно условно разделить на 2 большие группы: рассчитанные на сохранение состояния и не рассчитанные.
|
||||||
|
- Первые, по большому счёту, балансируют подключения пользователей. Но это никак не гарантирует равномерного распределения их запросов.
|
||||||
|
- Вторые – балансируют запросы между ресурсами. Это позволяет распределять нагрузку чуть более равномерно, но при этом необходимо задумываться о том, что бы система могла работать в режиме без сохранения состояния.
|
||||||
|
|
||||||
|
Сами же алгоритмы, по большому счёту, отличаются только механизмом выбора экземпляра ресурса, к которому перенаправляется запрос. Это может быть равномерное распределение (алгоритм **Round Robin**) или вариации взвешенного (алгоритм **Weighted Round Robin**).
|
||||||
|
На сегодняшний день существует множество открытых технологий балансировки нагрузки. Например, всем известный **Nginx** предоставляет инструменты для настройки подобной функции. Так же есть ряд проектов, полностью заточенных под балансировку нагрузки в Kubernetes (**OpenELB**, **MetalLB**).
|
||||||
|
## Балансировка нагрузки на БД
|
||||||
|
Балансировка нагрузки на БД – более сложный и комплексный вопрос. Он предполагает, что у СУБД должен быть механизм репликации данных, или шардинга. Например, такое умеет **PostgreSQL** и **MongoDB**
|
||||||
|
## Реверс-прокси
|
||||||
|
Реверс-прокси в данном случае напрямую не является инструментом балансировки нагрузки. Скорее это инструмент, эту балансировку и распределённость в целом, скрывающий за единым фасадом. Самым известным представителем этого семейства можно назвать уже упомянутый ранее **Nginx**
|
Loading…
Reference in New Issue
Block a user