DAS_2023_1/senkin_alexander_lab_7/README.md

3.1 KiB
Raw Permalink Blame History

Лабораторная работа №7. Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах.

Задачи: Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :). А помогут Вам в этом вопросы из списка:

  • Какие алгоритмы и методы используются для балансировки нагрузки?
  • Какие открытые технологии существуют для балансировки нагрузки?
  • Как осуществляется балансировка нагрузки на базах данных?
  • Реверс-прокси как один из элементов балансировки нагрузки.

Эссе

Балансировка нагрузки существует для распределения нагрузки между различными ресурсами, с целью повышения производительности, отказоустойчивости, предотвращения перегрузок и т.д. Можно балансировать нагрузку как в распределенных системах так и монолитных например за счет увеличения количества экземпляров работающей программы.
С этой целью можно использовать kubernetes, который имеет встроенную функцию балансировки нагрузки, а также можно настроить ее самому. С похожей целью можно исопльзовать docker, но k8s лучше подходит для данных целей.

Для балансировки можно использовать прокси, которые поддерживают механизмы балансировки нагрузки, например nginx. Он широко используется для балансировки http и https трафика.

Балансировка нагрузки в бд. Знаю мехнанизмы в реляционных базах данных, таких как postgres - шардирование и репликация. Шардирование больше подходит для распределения нагрузки на запись а репликация для распределения нагрузки на чтение. Также репликация подходит для локализации бд в разных частях света пользователям. Знаю, что нереляционные базы данных хорошо масшабируются по горизонтали, то есть за счет увеличения количества серверов, но не знаю за счет каких механизмов.