Шлюз относится к первому входу всех сервисов, так какие возможности должны быть у этого входа и как его спроектировать? Как шлюз в среде микросервисов соединяется с возможностями подключения, необходимыми для завершения бизнеса?
Архитектура Solomon_Xiao Gedan Высокопроизводительный шлюз APISIX "Dandan" с вами, по всей конструкции и возможностям шлюза трафика с севера на юг и с востока на запад. Нравится Нравится Нравится. Обратите внимание на мой публичный номерСоломон Сяо Гедан АрхитектураПолучите больше сюрпризов
Введение в APISIX
Apache APISIX — это динамический, работающий в режиме реального времени, высокопроизводительный API-шлюз, реализованный на основе сетевой библиотеки Nginx и т. д., предоставляющий богатые функции управления трафиком, такие как балансировка нагрузки, динамический восходящий поток, публикация в оттенках серого, предохранители служб, аутентификация удостоверений и возможность наблюдения.
Вы можете использовать Apache APISIX для обработки традиционного трафика север-юг, а также трафика восток-запад между сервисами или в качестве входного контроллера k8s.
Диаграмма технической архитектуры APISIX
характеристика
APISIX действует как запись трафика для обработки всех бизнес-данных, включая динамическую маршрутизацию, динамический восходящий поток, динамические сертификаты, A/B-тестирование, канареечный выпуск (выпуск в оттенках серого), сине-зеленое развертывание, ограничение тока и скорости, защиту от вредоносных атак, мониторинг оповещения, наблюдаемость услуг, управление услугами и т. д.
Все платформы
- Облачный родной:
- Независимо от платформы, без привязки к поставщику, APISIX работает на «голом железе» или Kubernetes.
- Рабочая среда:
- Поддерживаются как OpenResty, так и Tengine.
- Поддержка ARM64:
- Не беспокойтесь о блокировке базовой технологии.
многопротокольный
- TCP/UDP-прокси:
- Динамический прокси TCP/UDP.
- Динамический брокер MQTT:
- Поддерживает балансировку нагрузки MQTT с client_id и поддерживает стандарты протоколов MQTT 3.1.* и 5.0.
- gRPC-прокси:
- Проксируйте соединения gRPC через APISIX и управляйте своими службами gRPC, используя большинство функций APISIX.
- Преобразование протокола gRPC:
- Поддерживается преобразование протокола, поэтому клиенты могут получить доступ к вашему gRPC API через HTTP/JSON.
- Прокси-сервер веб-сокета
- Proxy Protocol
- Агент Дуббо:
- На базе Tengine можно реализовать прокси для запросов Dubbo.
- HTTP(S) обратный прокси
- SSL: динамически загружать SSL-сертификаты.
Полная динамическая способность
- Горячие обновления и горячие плагины:
- Конфигурации и плагины можно постоянно обновлять без перезапуска службы.
- Переписать запрос прокси:
- Поддерживает перезапись вышестоящего хоста, схемы URL-адресов, включения веб-сокета и информации заголовков запроса.
- Переписать содержимое вывода:
- Поддерживает пользовательскую модификацию кода состояния, тела и заголовков возвращаемого содержимого.
- Serverless:
- На каждом этапе APISIX вы можете добавлять и вызывать свои собственные функции.
- Динамическая балансировка нагрузки:
- Динамическая поддержка взвешенной циклической балансировки нагрузки.
- Балансировка нагрузки, поддерживающая последовательное хеширование:
- Динамически поддерживает балансировку нагрузки с последовательным хешированием.
- медицинское обследование:
- Включение проверки работоспособности вышестоящих узлов автоматически отфильтровывает неработоспособные узлы во время балансировки нагрузки, чтобы обеспечить стабильность системы.
- Предохранитель:
- Интеллектуально отслеживайте неработоспособные восходящие сервисы.
- Прокси-зеркало:
- Предоставляет возможность зеркалировать запросы клиентов.
улучшенная маршрутизация
- Поддержка полного сопоставления путей и сопоставления префиксов
- Поддерживает использование всех встроенных переменных Nginx в качестве условий маршрутизации, поэтому вы можете использовать файлы cookie, аргументы и т. д.
- В качестве условия маршрутизации для публикации в градациях серого, A/B-тестирования и других функций.
- Поддерживает различные операторы в качестве условий оценки маршрутизации, например {"arg_age", ">", 24}.
- Поддержка пользовательской функции сопоставления маршрутов
- IPv6: поддерживает сопоставление маршрутов с использованием формата IPv6.
- Поддерживает автоматическое истечение (TTL) маршрутов
- Поддержка приоритета маршрутизации
- Поддержка пакетного HTTP-запроса
Безопасность
- Несколько методов аутентификации: key-auth, JWT, basic-auth, wolf-rbac.
- черный и белый список IP
- Белый список рефералов
- Поддержка IdP: поддержка внешних служб аутентификации, таких как Auth0, Okta, Authing и т. д., пользователи могут использовать это для подключения с помощью Oauth2.0 и других методов аутентификации.
- лимит скорости
- Ограничить количество запросов
- Ограничение параллелизма
- Защита от ReDoS (отказ в обслуживании с помощью регулярных выражений): встроенные политики для защиты от ReDoS без настройки.
- CORS: включите CORS для вашего API.
- Перехватчик URI: перехватывает пользовательские запросы на основе URI.
- Запросить валидатор.
Удобен в эксплуатации и обслуживании
- Наблюдаемость OpenTracing:
- Поддерживаются Apache Skywalking и Zipkin.
- Стыковка с обнаружением внешних служб:
- Помимо встроенного etcd, поддерживаются режимы обнаружения DNS для Consul и Nacos, а также Eureka.
- Мониторинг и метрики: Прометей
- Кластер:
- Узлы APISIX не имеют состояния, обратитесь к руководству по кластеризации etcd, чтобы создать кластер центра конфигурации.
- Высокая доступность:
- Поддерживает настройку нескольких адресов etcd в одном кластере.
- приставка:
- Встроенная консоль для управления кластером APISIX.
- контроль версий:
- Поддерживается множественный откат операций.
- CLI:
- Используйте командную строку для запуска, выключения и перезапуска APISIX.
- Автономный режим:
- Поддерживает загрузку правил маршрутизации из локальных файлов конфигурации, что более удобно в таких средах, как kubernetes (k8s).
- Глобальные правила:
- Позволяет выполнять плагины для всех запросов, таких как черный и белый списки, текущие и скоростные ограничения и т. д.
- высокая производительность:
- На одном ядре QPS может достигать 18к, а задержка всего 0,2мс.
- инжекция неисправности
- REST Admin API:
- Используйте REST Admin API для управления Apache APISIX. По умолчанию доступ разрешен только 127.0.0.1. Вы можете изменить поле allow_admin в conf/config.yaml, чтобы указать список IP-адресов, которым разрешено вызывать Admin API. В то же время следует отметить, что Admin API использует аутентификацию по ключу для проверки личности вызывающего абонента, а поле admin_key в conf/config.yaml необходимо изменить перед развертыванием для обеспечения безопасности.
- Внешний регистратор:
- Экспорт журналов доступа во внешние инструменты управления журналами. (HTTP Logger, TCP Logger, Kafka Logger, UDP Logger)
Высокая масштабируемость
- Пользовательский плагин:
- Позволяет монтировать общие этапы, такие как инициализация, перезапись, доступ, балансировщик, фильтр заголовков, фильтр тела и этапы журнала.
- Пользовательский алгоритм балансировки нагрузки:
- На этапе балансировки можно использовать настраиваемые алгоритмы балансировки нагрузки.
- Пользовательский маршрут:
- Поддержка пользователей для самостоятельной реализации алгоритмов маршрутизации.
Тестирование производительности
Для тестирования APISIX используется 8 основных серверов, число запросов в секунду может достигать 140000, а задержка составляет всего 0,2 миллисекунды.
обрати внимание наАрхитектура Solomon_Xiao Gedan, последующие усилия по запуску высококачественного контента
твойСтавь лайк и следуйЭто постоянная движущая сила структуры Solomon_Xiaogedan.
Исторические Горячие Статьи
-
🔥Я не могу понять этот алгоритм! Как отображаются 9 изображений
-
🔥ОТДЫХАТЬ Я не могу понять это после прочтения, вы играете со мной!
-
🔥Как распределенная транзакция XID связывает все микросервисы
-
🔥Методические шаги по оптимизации производительности сайтов с миллиардным трафиком
-
🔥Microservice Nacos реализует ближайший доступ через CMDB для повышения производительности
-
🔥Микросервисная архитектура Принцип реализации регистрации и обнаружения DNS-сервиса