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

29 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа 7. Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах
### Задание
Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :).
  1. Какие алгоритмы и методы используются для балансировки нагрузки?
  2. Какие открытые технологии существуют для балансировки нагрузки?
  3. Как осуществляется балансировка нагрузки на базах данных?
  4. Реверс-прокси как один из элементов балансировки нагрузки.
***
ЭССЕ
---
**Балансировка нагрузки в распределённых системах**
Балансировка нагрузки — это процесс распределения запросов или задач между несколькими серверами или вычислительными ресурсами для оптимизации производительности и предотвращения перегрузок. Для реализации этой задачи применяются различные алгоритмы и методы, среди которых наиболее популярными являются: **круговой метод (round-robin)**, **наибольшая нагрузка** и **по наименьшей нагрузке**. Круговой метод равномерно распределяет запросы между серверами, в то время как методы по нагрузке основываются на вычислениях текущей загрузки серверов и направляют запросы на менее загруженные узлы.
Существует множество открытых технологий для балансировки нагрузки. Одной из самых популярных является **Nginx**, который может выполнять роль реверс-прокси и балансировщика нагрузки, распределяя входящий трафик между несколькими серверами. Также существует **HAProxy**, специализированный инструмент для балансировки нагрузки с высокими возможностями настройки и поддержкой различных алгоритмов. **Keepalived** используется для обеспечения отказоустойчивости системы путём управления виртуальными IP-адресами, что помогает поддерживать доступность сервисов даже в случае сбоя одного из серверов.
Балансировка нагрузки в базах данных отличается от обычной балансировки веб-запросов. Здесь она осуществляется на уровне запросов к базе данных, и чаще всего используется **репликация** и **шардинг**. Репликация позволяет создать несколько копий базы данных, и запросы могут направляться на менее загруженные реплики. Шардинг подразумевает разделение данных по нескольким серверам таким образом, что каждый сервер отвечает за часть данных, что позволяет распределить нагрузку и ускорить обработку запросов.
**Реверс-прокси** является важным элементом в балансировке нагрузки. Он принимает запросы от клиентов и перенаправляет их к подходящим серверам. Такой подход позволяет скрыть реальную архитектуру системы, повышает безопасность и упрощает управление трафиком. Реверс-прокси может работать в связке с балансировщиком нагрузки, чтобы обеспечить эффективное распределение запросов и улучшить общую производительность системы.
---