Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

Load Balancer Балансировка нагрузки

Метод распределения заданий между несколькими сетевыми устройствами (например, серверами) с целью:

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

Зачем

  • отказоустойчивость и масштабирование
    • MariaDB и RabbitMQ в основе лежит разделение баз и брокеров по сервисам.

Паттерны

  • Необходимо на уровне ИС поддерживать
  • отказоустойчивость самого балансировщика. Просто установка балансировщика тоже создаёт точку отказа: балансировщик ломается — сервис падает. Чтобы так не получалось, мы использовали HAProxy совместно с ExaBGP.
    • Балансировка HAProxy на базе DNS + BGP
    • Доступность haproxy: heartbeat между ExaBGP и HAProxy
    • синхронизировать сессии. При работе через распределенные балансировщики сложно организовать сохранение информации о сессиях клиентов. Но HAProxy — один из немногих балансировщиков, который умеет это за счёт функционала Peers — возможности передачи между различными процессами HAProxy таблицы сессий.

Алгоритмы

Алгоритмы

алгоритмы

Технологии