Knative Eventing — это система, предназначенная для решения распространенной потребности в облачной native разработке и предоставляющая составные примитивы для обеспечения позднего связывания источников событий и потребителей событий.
Knative Eventing поддерживает несколько режимов использования. Следующие сценарии хорошо поддерживаются существующими компонентами; поскольку система модульная, возможно также комбинировать компоненты новыми способами.
Я хочу только публиковать события, мне не важно, кто их потребляет. Отправьте события в Broker как HTTP POST. SinkBinding может быть полезен для декомпозиции конфигурации назначения от вашего приложения.
Я хочу только потреблять события типа X, мне не важно, как они публикуются. Используйте Trigger для потребления событий из Broker на основе атрибутов CloudEvents. Ваше приложение будет получать события как HTTP POST.
Я хочу трансформировать события через серию шагов. Используйте Channels и Subscriptions для определения сложных топологий передачи сообщений. Для простых потоков обработки Sequence автоматизирует построение Channels и Subscriptions между каждым этапом.
Knative также поддерживает некоторые дополнительные шаблоны, такие как Параллельное распределение событий и маршрутизацию ответных событий как из Channels, так и из Brokers.## Обзор дизайна
Knative Eventing спроектирован с учетом следующих целей:
Чтобы включить доставку в несколько типов сервисов, Knative Eventing определяет два
общих интерфейса, которые могут быть реализованы нескольким ресурсам Kubernetes:1. Addressable объекты способны получать и подтверждать событие, доставленное по HTTP на адрес, определенный в поле status.address.url
. В качестве специального случая, основной объект Kubernetes Service также соответствует интерфейсу Addressable.
Чтобы узнать о работе с источниками событий, обратитесь к документации по источникам событий.
Объекты Брокер и Триггер делают фильтрацию событий по атрибутам событий простым.
Брокер предоставляет корзину событий, которая может быть выбрана по атрибутам. Он
получает события и пересылает их подписчикам, определенным одним или несколькими
соответствующими Триггерами. Поскольку Брокер реализует Addressable, отправители
событий могут отправлять события в Брокер путем POST-запроса события на адрес
status.address.url
Брокера.
Триггер описывает фильтр по атрибутам события, который должен быть доставлен Addressable. Вы можете создать столько Триггеров, сколько необходимо.
Для большинства сценариев использования достаточно одного брокера (корзины) на namespace, но есть несколько сценариев использования, где несколько брокеров (несколько корзин) могут упростить архитектуру. Например, отдельные брокеры для событий, содержащих личную идентифицируемую информацию (PII), и событий без PII, могут упростить правила аудита и контроля доступа.
Knative Eventing определяет объект EventType для упрощения обнаружения типов событий, которые могут быть получены потребителями из брокеров.Регистр состоит из коллекции типов событий. Типы событий, хранящиеся в регистре, содержат всю необходимую информацию для потребителя для создания Триггера без использования какого-либо другого вне-канального механизма. Чтобы узнать, как использовать реестр, см. документацию Event Registry.
Кастомный объект SinkBinding поддерживает декомпозицию производства событий от их доставки.
При создании SinkBinding вы ссылаетесь на Addressable и Kubernetes объект, который предоставляет PodTemplateSpec. SinkBinding внедряет переменные окружения ($K_SINK
для URL-адреса назначения) в PodTemplateSpec, чтобы приложение не требовало взаимодействия с API Kubernetes для поиска назначения событий.
Knative Eventing также определяет слой перенаправления и сохранения событий, называемый каналом. Каждый канал является отдельным Kubernetes Custom Resource. События доставляются в сервисы или перенаправляются в другие каналы (возможно, другого типа) с помощью Подписок. Это позволяет доставлять сообщения в кластере в зависимости от требований, так что некоторые события могут обрабатываться с использованием в-памяти реализации, а другие — сохраняться с использованием Apache Kafka или NATS Streaming.См. Список реализации каналов.
Существуют случаи, когда вы можете захотеть использовать набор взаимодействующих функций, и для этих случаев Knative Eventing предоставляет два дополнительных ресурса:
Основное внимание для следующего выпуска Eventing будет уделено упрощению реализации источников событий. Источники управляют регистрацией и доставкой событий из внешних систем с помощью Kubernetes Custom Resources. Узнайте больше о разработке Eventing в рабочей группе Eventing.
Следуйте инструкциям для установки на платформу вашего выбора.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )