From f8750da5930366515daee52aa019d416c6914cdd Mon Sep 17 00:00:00 2001 From: VictoriaPresnyakova Date: Mon, 18 Nov 2024 18:56:40 +0400 Subject: [PATCH] lab 7 done --- presnyakova_victoria_lab_7/readme.md | 42 ++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 presnyakova_victoria_lab_7/readme.md diff --git a/presnyakova_victoria_lab_7/readme.md b/presnyakova_victoria_lab_7/readme.md new file mode 100644 index 0000000..49a7851 --- /dev/null +++ b/presnyakova_victoria_lab_7/readme.md @@ -0,0 +1,42 @@ +# Лабораторная работа № 7. Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах + +**Задание** + +Написать небольшое эссе (буквально несколько абзацев) своими словами (пожалуйста не пользуйтесь гуглом :). А помогут Вам в этом вопросы из списка: + +1. Какие алгоритмы и методы используются для балансировки нагрузки? +2. Какие открытые технологии существуют для балансировки нагрузки? +3. Как осуществляется балансировка нагрузки на базах данных? +4. Реверс-прокси как один из элементов балансировки нагрузки. +# Балансировка нагрузки + +Балансировка нагрузки распределяет запросы между серверами для повышения производительности и устойчивости. Популярные алгоритмы: + +- **Round Robin** — поочередное распределение запросов. +- **Least Connections** — выбор наименее загруженного сервера. +- **Weighted Round Robin** — учет мощности сервера при распределении. + +## Технологии + +Для реализации используются инструменты, такие как: + +- **NGINX** — веб-сервер и реверс-прокси с функциями балансировки. +- **HAProxy** — высокопроизводительный прокси для сложных сценариев. +- **Traefik** — интеграция с контейнерными оркестраторами. + +## Балансировка нагрузки в базах данных + +Для распределения нагрузки в базах данных применяют: + +- **Репликация**: + - Мастер-слейв — чтение с реплик, запись через мастер. + - Мастер-мастер — запись и чтение на нескольких серверах. +- Инструменты: **ProxySQL** для динамического распределения запросов. + +## Реверс-прокси + +Реверс-прокси, например **NGINX**, принимает клиентские запросы и перенаправляет их на серверы. Это улучшает: + +- Производительность. +- Безопасность. +- Скрытие внутренней архитектуры системы.