Поделиться через


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

В этой статье объясняются основные понятия, связанные с Сеткой событий в Kubernetes с поддержкой Azure Arc (предварительная версия).

Важно!

Служба "Сетка событий" в 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.

Издатели

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

Разделы

Раздел — это своего рода входной канал, предоставляющий конечную точку, в которую издатели отправляют события Сетки событий.

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

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

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

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

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

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

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

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

Проверка подлинности на основе SAS

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

Доставка событий

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

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

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

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

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

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

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

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

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

Чтобы начать работу, см. статью Создание разделов и подписок.