DAS_2023_1/podkorytova_yulia_lab_7/README.md
2024-01-11 03:24:59 +04:00

3.9 KiB
Raw Blame History

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

Задание на лабораторную работу

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

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

Эссе

Балансировка нагрузки в распределённых системах применяется применяется для обеспечения равномерного распределения работы и ресурсов между компонентами системы. Это позволяет достичь повысить отказоустойчивость и обеспечить высокую роизводительность системы. Для достижения равномерного распределения нагрузки используются различные алгоритмы и методы.

Алгоритмы для балансировки нагрузки:

  • циклический перебор (распределяет запросы между серверами по очереди);
  • взвешенный циклический перебор (каждый сервер имеет вес в зависимости от его производительности, более мощные сервера берут на себя больше запросов);
  • наименьшее количество подключений (запросы направляются на сервер с наименьшим количеством активных соединений).

Существуют открытые технологий для балансировки нагрузки в распределенных системах, которые могут распределять запросы между несколькими серверами. К таким технологиям можно отнести Nginx (веб-сервер, который обеспечивает высокую производительность и отличается низким потреблением ресурсов и широкими возможностями) и Apache HTTP Server (позволяет обеспечить отказоустойчивость).

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

Реверс-прокси - это один из элементов балансировки нагрузки, который может использоваться для маршрутизации запросов от клиентов к различным серверам. Реверс-прокси принимает запросы от клиентов и перенаправляет их к наиболее подходящему серверу в зависимости от текущей нагрузки. Примером реверс-прокси является Nginx.