DAS_2024_1/turner_ilya_lab_7
2024-11-10 19:43:50 +04:00
..
README.md turner_ilya_lab_7 is ready 2024-11-10 19:43:50 +04:00

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

ПИбд-42 || Тюрнер Илья

Задание:

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

  1. Какие алгоритмы и методы используются для балансировки нагрузки?
  2. Какие открытые технологии существуют для балансировки нагрузки?
  3. Как осуществляется балансировка нагрузки на базах данных?
  4. Реверс-прокси как один из элементов балансировки нагрузки.

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

Балансировка нагрузки - это очень важная задача при проектировании распределенных систем. Ее цель - грамотное распределение запросов/задач между серверами или узлами системы для того, чтобы минимизировать вероятность перегрузки одного из них. Для выполнения этой задачи существуют различные алгоритмы и методы. Их применяют, опираясь на специфику системы и требования к производительности.

Приведем примеры некоторых таких алогритмов. К одним из самых популярных относится "круговое распределение" (Round Robin) - запросы равномерно направляются на доступные серверы. Также довольно известно "взвешенное распределение" (Weighted Round Robin). Его отличие в том, что запросы отправляются на основе некоторых весов, обычно формируеммых из производительностей серверов. Ну и третьим можно выделить Least Connections. В первую очередь запросы отправляются на сервера с меньшим числом активных подключений.

Есть решения для балансировки нагрузки и среди открытых технологий. Яркие примеры: Nginx, HAProxy и Kubernetes. Nginx и HAProxy поддерживают балансировку, применяя различные алгоритмы. Kubernetes - это платформа для управления контейнерами со встроенными механизмами балансировки.

Есть иной подход к балансировке - на базах данных. Там применяют механизм репликации, т.е. запросы от пользователей распределяются по резличным копиям БД. Это повышает производительность и отказоустойчивость.

Реверс-прокси - это некий посредник между клиентом и серверными ресурсами. Он может кэшировать информацию, сжимать данные и фильтровать трафик. Примеры: Nginx и Traefik.

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