Декодирование примитивов балансировки нагрузки

Декодирование примитивов балансировки нагрузки

27 февраля 2024 г.

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

Существует две основные стратегии масштабирования: вертикальная и горизонтальная.

Вертикальное масштабирование направлено на увеличение мощности системы путем добавления к вашим серверам большего количества ЦП и оперативной памяти.

Напротив, горизонтальное масштабирование направлено на дублирование (или клонирование) ваших серверов в пуле ресурсов.

Подробнее:

Вертикальное масштабирование

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

Однако вертикальное масштабирование имеет серьезные недостатки

  1. Аппаратное ограничение, поскольку бесконечно добавлять ресурсы невозможно
  2. Отсутствие аварийного переключения и избыточности повышает риск длительного простоя и потери данных.
  3. Горизонтальное масштабирование

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

    Балансировщик нагрузки распределяет трафик на ваших серверах, используя определенные алгоритмы, такие как:

    1. Раунд-робин
    2. Взвешенный циклический алгоритм
    3. Подходы на основе хэша IP
    4. Наименьший метод подключения
    5. Метод наименьшего взвешенного соединения
    6. Метод наименьшего ответа, и многие другие.
    7. Тем не менее, у него есть несколько недостатков:

      1. Серверы не должны сохранять состояние
      2. Сессии должны сохраняться в централизованном хранилище данных.
      3. Могут потребоваться более сложные стратегии развертывания
      4. Балансировщик нагрузки может стать узким местом производительности, если он неправильно настроен и ресурсов недостаточно.
      5. Это усложняет систему и представляет собой потенциальную единую точку отказа, требующую применения стратегий аварийного переключения.
      6. Балансировщики нагрузки L4/L7

        Чтобы два устройства в Интернете могли взаимодействовать друг с другом, базовые системы должны следовать определенным протоколам. Все слышали о модели OSI, которая описывает семь уровней, которые компьютерные системы используют для взаимодействия по сети. Хотя современный Интернет основан на более простой модели стека протоколов TCP/IP, модель OSI широко используется, поскольку она помогает визуализировать и сообщать о том, как работают сети, а также помогает изолировать и устранять сетевые проблемы.

        В большинстве отраслевых решений по балансировке нагрузки используются термины L4 и L7, где L4 относится к транспортному уровню в модели OSI, а L7 — к прикладному уровню.

        Балансировщик нагрузки L4 по-прежнему является L2/L3, поскольку он использует данные нижних уровней, такие как IP-адрес и номер порта.

        Основные преимущества балансировщика нагрузки L4

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

        Основные недостатки балансировщика нагрузки L4

        • Интеллектуальная маршрутизация невозможна, поскольку контент не расшифровывается.
        • Протокол с отслеживанием состояния усложняет ситуацию.
        • Сопоставление общедоступных и частных адресов
        • Кэширование отсутствует, поскольку контент недоступен на этом уровне.
        • Невозможно использовать для архитектуры микросервисов, поскольку недоступно перенаправление трафика на основе URL-адреса.

        С другой стороны, балансировщик нагрузки L7 работает на уровне приложения в модели OSI

        Основные преимущества балансировщика нагрузки L7

        • Разумные решения можно принимать на основе URL-пути, заголовков и контента.
        • Кэширование

        Основные недостатки балансировщика нагрузки L7

        • Дополнительные издержки из-за поддержания двух TCP-соединений: одного между клиентом и балансировщиком нагрузки, второго между балансировщиком нагрузки и сервером. Кроме того, необходимо учитывать ограничение TCP-соединений балансировщика нагрузки.
        • Менее безопасно, поскольку балансировщик нагрузки должен знать сертификаты, чтобы иметь возможность расшифровывать данные и принимать решения о маршрутизации.

        Заключение

        Балансировщик нагрузки — жизненно важный компонент, когда горизонтальное масштабирование применяется для работы с системами с высоким трафиком. Существует два основных типа балансировщиков нагрузки: L4 и L7.

        1. Балансировщик нагрузки L4 намного безопаснее и производительнее из-за ограничений принятия разумных решений.
        2. Балансировщик нагрузки L7 обеспечивает интеллектуальные решения по маршрутизации с учетом затрат на эффективность и безопасность.
        3. Выбор подходящего типа зависит от системных требований, и к нему следует подходить тщательно, соблюдая разумный баланс между применением принципов безопасности и устранением узких мест в производительности.

          :::информация Также опубликовано здесь.

          :::


          Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE