DAS_2024_1/bogdanov_dmitry_lab_7/README.md
2024-11-11 13:04:46 +04:00

27 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Алгоритмы и методы балансировки нагрузки
Балансировка нагрузки в распределенных системах применяется для обеспечения равномерного распределения работы и ресурсов между компонентами системы. Это позволяет достичь повышенной отказоустойчивости и обеспечить высокую производительность.
Основные алгоритмы для балансировки нагрузки включают:
- Циклический перебор (Round Robin): запросы распределяются между серверами по очереди.
- Взвешенный циклический перебор (Weighted Round Robin): каждый сервер имеет вес в зависимости от производительности, более мощные серверы берут на себя больше запросов.
- Наименьшее количество подключений (Least Connections): запросы направляются на сервер с наименьшим количеством активных соединений.
## Открытые технологии для балансировки нагрузки
Существуют открытые технологии для балансировки нагрузки в распределенных системах, которые могут распределять запросы между несколькими серверами. К таким технологиям можно отнести:
NGINX: отлично подходящит для балансировки нагрузки на уровне HTTP/TCP.
Kubernetes Ingress: управляет балансировкой в контейнерных средах.
## Балансировка нагрузки на базах данных
Метод репликации: синхронизация содержимого нескольких копий базы данных. Это достигается путем распределения запросов по копиям БД.
Шардинг: разделение данных на логические части и хранение этих частей на разных серверах. Это позволяет равномерно распределить нагрузку.
## Реверс-прокси как элемент балансировки нагрузки
Реверс-прокси является одним из ключевых элементов системы балансировки нагрузки. Такой сервер выступает "посредником" в процессе обмена запросами. Он принимает запрос от пользователя, направляет его нужному серверу, а затем получает и передает ответ обратно пользователю.