Декодирование примитивов балансировки нагрузки
27 февраля 2024 г.Всякий раз, когда ваша система растет, трафик увеличивается, все больше и больше пользователей используют ваши продукты, серверы начинают реагировать медленнее, из-за простоев страдает ваш бизнес, и тогда вы начинаете думать о масштабировании.
Существует две основные стратегии масштабирования: вертикальная и горизонтальная.
Вертикальное масштабирование направлено на увеличение мощности системы путем добавления к вашим серверам большего количества ЦП и оперативной памяти.
Напротив, горизонтальное масштабирование направлено на дублирование (или клонирование) ваших серверов в пуле ресурсов.
Подробнее:
Вертикальное масштабирование
Вертикальное масштабирование — лучший вариант для системы с низким трафиком, поскольку это наиболее доступный подход для управления ростом без внесения дополнительных сложностей. Вам не нужно заботиться о стратегиях развертывания группы ресурсов, эластичности пула ресурсов, сохранении состояния вашего сервера, распределенном кеше и т. д.
Однако вертикальное масштабирование имеет серьезные недостатки
- Аппаратное ограничение, поскольку бесконечно добавлять ресурсы невозможно
- Отсутствие аварийного переключения и избыточности повышает риск длительного простоя и потери данных. ол>
- Раунд-робин
- Взвешенный циклический алгоритм
- Подходы на основе хэша IP
- Наименьший метод подключения
- Метод наименьшего взвешенного соединения
- Метод наименьшего ответа, и многие другие. ол>
- Серверы не должны сохранять состояние
- Сессии должны сохраняться в централизованном хранилище данных.
- Могут потребоваться более сложные стратегии развертывания
- Балансировщик нагрузки может стать узким местом производительности, если он неправильно настроен и ресурсов недостаточно.
- Это усложняет систему и представляет собой потенциальную единую точку отказа, требующую применения стратегий аварийного переключения. ол>
- Это более безопасно и эффективно, поскольку содержимое данных не учитывается при принятии решений о маршрутизации.
- Между клиентом и сервером устанавливается одно и то же TCP-соединение, что помогает предотвратить превышение лимита доступных TCP-соединений на балансировщике нагрузки.
- Интеллектуальная маршрутизация невозможна, поскольку контент не расшифровывается.
- Протокол с отслеживанием состояния усложняет ситуацию.
- Сопоставление общедоступных и частных адресов
- Кэширование отсутствует, поскольку контент недоступен на этом уровне.
- Невозможно использовать для архитектуры микросервисов, поскольку недоступно перенаправление трафика на основе URL-адреса.
- Разумные решения можно принимать на основе URL-пути, заголовков и контента.
- Кэширование
- Дополнительные издержки из-за поддержания двух TCP-соединений: одного между клиентом и балансировщиком нагрузки, второго между балансировщиком нагрузки и сервером. Кроме того, необходимо учитывать ограничение TCP-соединений балансировщика нагрузки.
- Менее безопасно, поскольку балансировщик нагрузки должен знать сертификаты, чтобы иметь возможность расшифровывать данные и принимать решения о маршрутизации.
- Балансировщик нагрузки L4 намного безопаснее и производительнее из-за ограничений принятия разумных решений.
- Балансировщик нагрузки L7 обеспечивает интеллектуальные решения по маршрутизации с учетом затрат на эффективность и безопасность. ол>
Горизонтальное масштабирование
Горизонтальное масштабирование устраняет эти проблемы за счет клонирования серверов приложений и внедрения такого компонента, как балансировщик нагрузки.
Балансировщик нагрузки распределяет трафик на ваших серверах, используя определенные алгоритмы, такие как:
Тем не менее, у него есть несколько недостатков:
Балансировщики нагрузки L4/L7
Чтобы два устройства в Интернете могли взаимодействовать друг с другом, базовые системы должны следовать определенным протоколам. Все слышали о модели OSI, которая описывает семь уровней, которые компьютерные системы используют для взаимодействия по сети. Хотя современный Интернет основан на более простой модели стека протоколов TCP/IP, модель OSI широко используется, поскольку она помогает визуализировать и сообщать о том, как работают сети, а также помогает изолировать и устранять сетевые проблемы.
В большинстве отраслевых решений по балансировке нагрузки используются термины L4 и L7, где L4 относится к транспортному уровню в модели OSI, а L7 — к прикладному уровню.
Балансировщик нагрузки L4 по-прежнему является L2/L3, поскольку он использует данные нижних уровней, такие как IP-адрес и номер порта.
Основные преимущества балансировщика нагрузки L4
Основные недостатки балансировщика нагрузки L4
С другой стороны, балансировщик нагрузки L7 работает на уровне приложения в модели OSI
Основные преимущества балансировщика нагрузки L7
Основные недостатки балансировщика нагрузки L7
Заключение
Балансировщик нагрузки — жизненно важный компонент, когда горизонтальное масштабирование применяется для работы с системами с высоким трафиком. Существует два основных типа балансировщиков нагрузки: L4 и L7.
Выбор подходящего типа зависит от системных требований, и к нему следует подходить тщательно, соблюдая разумный баланс между применением принципов безопасности и устранением узких мест в производительности.
:::информация Также опубликовано здесь.
:::
Оригинал