Сетка событий в Kubernetes — основные понятия

В этой статье описаны основные понятия в Event Grid в Kubernetes с поддержкой Azure Arc (предварительная версия).

Это важно

Сервис Event Grid в Kubernetes с поддержкой Azure Arc сейчас находится в общедоступной версии предварительного просмотра. Эта предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для использования в производственной среде. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.

События

Событие — это запись данных, которая объявляет факт о работе программной системы. Как правило, событие объявляет изменение состояния из-за сигнала, вызываемого системой или сигналом, наблюдаемым системой. События содержат два типа сведений:

  • Данные событий представляющие совершение изменения состояния.

  • Атрибуты контекста , предоставляющие контекстную информацию о возникновении события.

    Для фильтрации событий можно использовать как данные событий, так и атрибуты контекста.

Служба "Сетка событий" в Kubernetes поддерживает спецификацию схемы CloudEvents . Ниже приведен пример события, использующего схему CloudEvents. Сетка событий поддерживает событие размером до 1 МБ.

[{
       "specVersion": "1.0",
       "type" : "orderCreated",
       "source": "myCompanyName/us/webCommerceChannel/myOnlineCommerceSiteBrandName",
       "id" : "eventId-n",
       "time" : "2020-12-25T20:54:07+00:00",
       "subject" : "account/acct-123224/order/o-123456",
       "dataSchema" : "1.0",
       "data" : {
          "orderId" : "123",
          "orderType" : "PO",
          "reference" : "https://www.myCompanyName.com/orders/123"
      }
}]

Исходный материал

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

Каждый источник событий создает события одного или нескольких типов событий. В качестве источника событий приложение определяет набор связанных событий для объявления изменений состояния. Каждое событие имеет общие сведения, такие как источник события, время события и уникальный идентификатор. Каждое событие также содержит определенные сведения, относящиеся только к конкретному типу события. Поддержка события размером до 1 МБ в настоящее время находится в предварительной версии.

Свойства, включенные в событие, см. в схеме CloudEvents.

Publishers

Издатели событий — это приложения или системы, которые отправляют события в Event Grid для последующей доставки подписчикам событий.

Темы

Тема — это форма входного канала, предоставляющая конечную точку, куда издатели отправляют события в Event Grid.

Тема может использоваться для коллекции связанных событий. Вы можете создать раздел для каждой категории связанных событий. В некоторых случаях источник может использоваться для упорядочивания событий в категории, так как источники обычно связаны с набором тесно связанных типов событий ("MyApp.OrderCreated", "MyApp.OderDeleted", "MyApp.OrderRejected" и т. д.).

Рассмотрим приложение, которое отправляет события, связанные с управлением учетными записями пользователей и заказами на обработку. Маловероятно, что подписчик событий заинтересован в просмотре обеих категорий событий. Создайте две настраиваемые темы и позвольте обработчикам событий подписаться на ту, которая их интересует. Для небольших решений, возможно, целесообразнее отправлять все события в один раздел.

Подписчики событий

Подписчики событий — это программные системы, такие как микрослужбы, предоставляющие конечные точки, куда Event Grid доставляет события.

Подписки на события

Подписка на события указывает Event Grid, какие события в теме вас интересуют (фильтрация событий) и куда их отправить (маршрутизация событий). При создании подписки на события вы предоставляете конечную точку для обработки события. Вы можете выбрать события, которые необходимо передать в конечную точку, настроив предложения фильтра в подписке на события.

Обработчики событий

Обработчик событий — это программная система, которая предоставляет конечную точку, в которую отправляются события. Обработчик получает событие и выполняет действия для обработки события. Служба "Сетка событий" поддерживает несколько типов обработчиков. В качестве обработчика вы можете использовать поддерживаемую службу Azure, размещенную на Kubernetes или Azure, или собственное решение, которое предоставляет веб-перехватчик (конечную точку) независимо от места размещения. В зависимости от типа обработчика служба "Сетка событий" применяет различные механизмы, гарантирующие доставку события. Если обработчик событий назначения является веб-перехватчиком HTTP, событие выполняется повторно, пока обработчик не возвращает код состояния 200 – ОК. Дополнительные сведения см. в разделе обработчиков событий.

Аутентификация SAS

Служба "Сетка событий" в Kubernetes обеспечивает проверку подлинности на основе ключей SAS для публикации событий в разделах.

Передача событий

Ивент Грид на Kubernetes предоставляет надежный механизм доставки и повторной попытки. Если Event Grid не может подтвердить, что событие получено конечной точкой обработчика событий, оно повторно доставляет событие. Дополнительные сведения см. в разделе Доставка и повторные попытки доставки сообщений сетки событий.

Публикация событий пакетной обработки

При использовании темы события всегда должны публиковаться в массиве. В сценариях с низкой пропускной способностью массив будет иметь только одно событие. Для случаев использования больших объемов рекомендуется пакетировать несколько событий на публикацию для повышения эффективности. Пакеты могут составлять до 1 МБ. Каждое событие по-прежнему не должно превышать 1 МБ. Для получения дополнительной информации см. раздел Пакетная доставка событий.

Сетка событий в компонентах Kubernetes

  • Оператор Сетки событий реализует шаблон оператора. Он следит за изменениями состояния ресурсов Сетки событий в результате запросов уровня управления, сделанных серверу API Kubernetes. При наличии запроса, влияющего на состояние любого из ресурсов сетки событий, оператор Сетки событий синхронизирует это состояние с брокером сетки событий.

  • Брокер сетки событий служит как для операций на уровне управления, так и для операций на уровне данных.

    Как служба плоскости управления, она отвечает за приведение состояния Event Grid в требуемое состояние, сообщаемое оператором Event Grid. Например, когда запрос создается для создания нового раздела, он выполняет этот запрос и обновляет метаданные службы.

    В качестве службы плоскости управления данными она обрабатывает все запросы на публикацию событий и доставляет события в места назначения, которые настроены в подписках на события.

Дальнейшие действия

Сведения о начале работы см. в статье "Создание разделов и подписок".