.. | ||
README.md |
Лабораторная работа 7. Балансировка нагрузки в распределённых системах при помощи открытых технологий на примерах
Задание на лабораторную работу
Написать небольшое эссе (буквально несколько абзацев) своими словами.
- Какие алгоритмы и методы используются для балансировки нагрузки?
- Какие открытые технологии существуют для балансировки нагрузки?
- Как осуществляется балансировка нагрузки на базах данных?
- Реверс-прокси как один из элементов балансировки нагрузки.
Эссе
Балансировка нагрузки в распределённых системах применяется применяется для обеспечения равномерного распределения работы и ресурсов между компонентами системы. Это позволяет достичь повысить отказоустойчивость и обеспечить высокую роизводительность системы. Для достижения равномерного распределения нагрузки используются различные алгоритмы и методы.
Алгоритмы для балансировки нагрузки:
- циклический перебор (распределяет запросы между серверами по очереди);
- взвешенный циклический перебор (каждый сервер имеет вес в зависимости от его производительности, более мощные сервера берут на себя больше запросов);
- наименьшее количество подключений (запросы направляются на сервер с наименьшим количеством активных соединений).
Существуют открытые технологий для балансировки нагрузки в распределенных системах, которые могут распределять запросы между несколькими серверами. К таким технологиям можно отнести Nginx (веб-сервер, который обеспечивает высокую производительность и отличается низким потреблением ресурсов и широкими возможностями) и Apache HTTP Server (позволяет обеспечить отказоустойчивость).
Балансировка нагрузки на базах данных может осуществляться при помощи репликации данных - синхронизации содержимого нескольких копий базы данных, или шардирования, при котором база данных разделена на несколько шардов, где каждый шард содержит часть данных.
Реверс-прокси - это один из элементов балансировки нагрузки, который может использоваться для маршрутизации запросов от клиентов к различным серверам. Реверс-прокси принимает запросы от клиентов и перенаправляет их к наиболее подходящему серверу в зависимости от текущей нагрузки. Примером реверс-прокси является Nginx.