Merge pull request 'agliullov_daniyar_lab_7 is ready' (#411) from agliullov_daniyar_lab_7 into main

Reviewed-on: #411
This commit is contained in:
Alexey 2025-01-02 13:19:10 +04:00
commit 7f854f8bc2

View File

@ -0,0 +1,24 @@
# Лабораторная работа 7. Балансировка нагрузки в распределённых системах с использованием открытых технологий
## Задание
Написать краткое эссе, отвечая на следующие вопросы:
1. Какие алгоритмы и методы применяются для балансировки нагрузки?
2. Какие открытые технологии доступны для этой задачи?
3. Как осуществляется балансировка нагрузки в системах управления базами данных?
4. Какова роль реверс-прокси в процессе балансировки нагрузки?
## Эссе по теме
Балансировка нагрузки является ключевым аспектом проектирования распределённых систем, позволяя равномерно распределять входящие запросы между несколькими серверами или ресурсами. Это способствует повышению доступности, производительности и устойчивости к сбоям системы.
Существует множество алгоритмов и методов, применяемых для балансировки нагрузки. К ним относятся Least Connections (минимальное количество соединений), Round Robin (круговая схема), Server Health Check (проверка состояния сервера), Least Response Time (минимальное время ответа) и Random (случайный выбор). Эти подходы помогают эффективно распределять клиентские запросы с учётом текущей загруженности серверов.
Среди открытых технологий для балансировки нагрузки можно выделить Nginx, HAProxy, Apache HTTP Server и другие. Эти инструменты позволяют настроить прокси-серверы, которые принимают запросы от пользователей и направляют их на один или несколько серверов приложений, обеспечивая равномерное распределение нагрузки.
Балансировка нагрузки в базах данных важна для поддержания доступности и производительности системы. Для этого используются специализированные решения, такие как ProxySQL, pgpool-II и MySQL Router. Они помогают распределять запросы к базам данных между различными узлами, что позволяет снизить нагрузку на основной сервер.
Реверс-прокси представляет собой сервер, который принимает запросы от клиентов и перенаправляет их на один или несколько серверов приложений. Он выполняет множество функций, включая балансировку нагрузки, обеспечение безопасности, кэширование, SSL-терминацию, а также мониторинг и ведение логов.