From b454ad2bcc320f5cd02c508ee3dbe874223b39d4 Mon Sep 17 00:00:00 2001 From: Tyurner Date: Sun, 10 Nov 2024 19:43:50 +0400 Subject: [PATCH] turner_ilya_lab_7 is ready --- turner_ilya_lab_7/README.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 turner_ilya_lab_7/README.md diff --git a/turner_ilya_lab_7/README.md b/turner_ilya_lab_7/README.md new file mode 100644 index 0000000..9f8f5ed --- /dev/null +++ b/turner_ilya_lab_7/README.md @@ -0,0 +1,35 @@ +# Лабораторная работа №7 - Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах +## ПИбд-42 || Тюрнер Илья + +### Задание: +Написать небольшое эссе (буквально несколько абзацев) своими словами. + +1. Какие алгоритмы и методы используются для балансировки нагрузки? +2. Какие открытые технологии существуют для балансировки нагрузки? +3. Как осуществляется балансировка нагрузки на базах данных? +4. Реверс-прокси как один из элементов балансировки нагрузки. + +### Эссе на тему: "Балансировка нагрузки в распределённых системах при помощи открытых технологий" +Балансировка нагрузки - это очень важная задача при проектировании распределенных систем. Ее цель - грамотное распределение +запросов/задач между серверами или узлами системы для того, чтобы минимизировать вероятность перегрузки одного из них. +Для выполнения этой задачи существуют различные алгоритмы и методы. Их применяют, опираясь на специфику системы и требования +к производительности. + +Приведем примеры некоторых таких алогритмов. К одним из самых популярных относится "круговое распределение" (**Round Robin**) - +запросы равномерно направляются на доступные серверы. Также довольно известно "взвешенное распределение" (**Weighted Round Robin**). +Его отличие в том, что запросы отправляются на основе некоторых весов, обычно формируеммых из производительностей серверов. +Ну и третьим можно выделить **Least Connections**. В первую очередь запросы отправляются на сервера с меньшим числом активных +подключений. + +Есть решения для балансировки нагрузки и среди открытых технологий. Яркие примеры: **Nginx**, **HAProxy** и **Kubernetes**. +**Nginx** и **HAProxy** поддерживают балансировку, применяя различные алгоритмы. **Kubernetes** - это платформа для управления +контейнерами со встроенными механизмами балансировки. + +Есть иной подход к балансировке - на базах данных. Там применяют механизм **репликации**, т.е. запросы от пользователей +распределяются по резличным копиям БД. Это повышает производительность и отказоустойчивость. + +**Реверс-прокси** - это некий посредник между клиентом и серверными ресурсами. Он может кэшировать информацию, сжимать +данные и фильтровать трафик. Примеры: **Nginx** и **Traefik**. + +Можно сделать вывод, что балансировка нагрузки с помощью различных технологий и алгоритмов нужна для того, чтобы эффективно +распределять ресурсы, повышать отказоустойчивость и масштабируемость различных распределенных систем. \ No newline at end of file