DAS_2023_1/senkin_alexander_lab_7/README.md

18 lines
3.1 KiB
Markdown
Raw Normal View History

2023-12-14 15:16:02 +04:00
# Лабораторная работа №7. Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах.
Задачи: Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :). А помогут Вам в этом вопросы из списка:
- Какие алгоритмы и методы используются для балансировки нагрузки?
- Какие открытые технологии существуют для балансировки нагрузки?
- Как осуществляется балансировка нагрузки на базах данных?
- Реверс-прокси как один из элементов балансировки нагрузки.
# Эссе
Балансировка нагрузки существует для распределения нагрузки между различными ресурсами, с целью повышения производительности, отказоустойчивости, предотвращения перегрузок и т.д.
Можно балансировать нагрузку как в распределенных системах так и монолитных например за счет увеличения количества экземпляров работающей программы.
С этой целью можно использовать kubernetes, который имеет встроенную функцию балансировки нагрузки, а также можно настроить ее самому. С похожей целью можно исопльзовать docker, но k8s лучше подходит для данных целей.
Для балансировки можно использовать прокси, которые поддерживают механизмы балансировки нагрузки, например nginx. Он широко используется для балансировки http и https трафика.
Балансировка нагрузки в бд. Знаю мехнанизмы в реляционных базах данных, таких как postgres - шардирование и репликация. Шардирование больше подходит для распределения нагрузки на запись а репликация для распределения нагрузки на чтение. Также репликация подходит для локализации бд в разных частях света пользователям.
Знаю, что нереляционные базы данных хорошо масшабируются по горизонтали, то есть за счет увеличения количества серверов, но не знаю за счет каких механизмов.