DAS_2024_1/kadyrov_aydar_lab_7/README.md
2024-11-12 22:55:00 +04:00

4.8 KiB
Raw Blame History

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

Задание

Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :).

  1. Какие алгоритмы и методы используются для балансировки нагрузки?

  2. Какие открытые технологии существуют для балансировки нагрузки?

  3. Как осуществляется балансировка нагрузки на базах данных?

  4. Реверс-прокси как один из элементов балансировки нагрузки.


ЭССЕ

Балансировка нагрузки в распределённых системах

Балансировка нагрузки — это процесс распределения запросов или задач между несколькими серверами или вычислительными ресурсами для оптимизации производительности и предотвращения перегрузок. Для реализации этой задачи применяются различные алгоритмы и методы, среди которых наиболее популярными являются: круговой метод (round-robin), наибольшая нагрузка и по наименьшей нагрузке. Круговой метод равномерно распределяет запросы между серверами, в то время как методы по нагрузке основываются на вычислениях текущей загрузки серверов и направляют запросы на менее загруженные узлы.

Существует множество открытых технологий для балансировки нагрузки. Одной из самых популярных является Nginx, который может выполнять роль реверс-прокси и балансировщика нагрузки, распределяя входящий трафик между несколькими серверами. Также существует HAProxy, специализированный инструмент для балансировки нагрузки с высокими возможностями настройки и поддержкой различных алгоритмов. Keepalived используется для обеспечения отказоустойчивости системы путём управления виртуальными IP-адресами, что помогает поддерживать доступность сервисов даже в случае сбоя одного из серверов.

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

Реверс-прокси является важным элементом в балансировке нагрузки. Он принимает запросы от клиентов и перенаправляет их к подходящим серверам. Такой подход позволяет скрыть реальную архитектуру системы, повышает безопасность и упрощает управление трафиком. Реверс-прокси может работать в связке с балансировщиком нагрузки, чтобы обеспечить эффективное распределение запросов и улучшить общую производительность системы.