Бөлісу құралы:


основные понятия пространства имен Сетка событий Azure

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

События

Событие — это наименьший объем информации, который полностью описывает то, что произошло в системе. Мы часто называем событие дискретным событием, так как представляет собой отдельный самостояющийся факт о системе, которая предоставляет аналитические сведения, которые могут быть действенными. Каждое событие имеет общие сведения, такие как source событие, time произошло событие и уникальный идентификатор. Каждое событие также имеет typeуникальный идентификатор, описывающий тип объявления, для которого используется событие.

Например, событие создания файла в службе хранилища Azure содержит сведения о файле, такие как значение lastTimeModified. Событие Центров событий имеет URL-адрес захваченного файла. Событие о новом порядке в микрослужбе Orders может иметь orderId атрибут и атрибут URL-адреса для представления состояния заказа. Ниже приведены несколько примеров типов событий: com.yourcompany.Orders.OrderCreated, org.yourorg.GeneralLedger.AccountChangedio.solutionname.Auth.MaximumNumberOfUserLoginAttemptsReached.

Ниже указан пример события.

{
    "specversion" : "1.0",
    "type" : "com.yourcompany.order.created",
    "source" : "/orders/account/123",
    "subject" : "O-28964",
    "id" : "A234-1234-1234",
    "time" : "2018-04-05T17:31:00Z",
    "comexampleextension1" : "value",
    "comexampleothervalue" : 5,
    "datacontenttype" : "application/json",
    "data" : {
       "orderId" : "O-28964",
       "URL" : "https://com.yourcompany/orders/O-28964"
    }
}

Другой вид события

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

Поддержка CloudEvents

Разделы пространства имен сетки событий принимают события, которые соответствуют открытой спецификации CloudEvents 1.0 с использованием привязки протокола HTTP с форматом JSON. CloudEvent — это своего рода сообщение, содержащее обмен данными, называемые данными о событиях и метаданными об этом. Данные событий в архитектуре, управляемой событиями, обычно содержат сведения об изменении состояния системы. Метаданные CloudEvents состоят из набора атрибутов, которые предоставляют контекстные сведения о сообщении, например о том, где она возникла (исходная система), тип и т. д.

Дополнительные сведения см. в разделе "Поддержка схемы CloudEvents".

Издатели

Издатель — это приложение, которое отправляет события в сетку событий. Это может быть то же приложение, где произошли события, источник событий. При использовании разделов пространства имен можно публиковать события из собственного приложения.

Источники событий

Источник события — это место, где оно произошло. Каждый источник событий поддерживает один или несколько типов событий. Например, приложение является источником событий для пользовательских событий, которые определяет ваша система. При использовании разделов пространства имен источники событий поддерживаются собственными приложениями.

Пространства имен

Пространство имен Сетки событий — это контейнер управления для следующих ресурсов:

Ресурс Поддерживаемый протокол
Разделы пространства имен HTTP
Пространства разделов MQTT
Клиенты MQTT
Группы клиентов MQTT
Сертификаты ЦС MQTT
Привязки разрешений MQTT

С помощью пространства имен Сетка событий Azure можно группировать связанные ресурсы и управлять ими в виде одной единицы в подписке Azure. Он предоставляет уникальное полное доменное имя (FQDN).

Пространство имен предоставляет две конечные точки:

  • Конечная точка HTTP для поддержки общих требований к обмену сообщениями с помощью разделов пространства имен.
  • Конечная точка MQTT для обмена сообщениями Интернета вещей или решений, использующих MQTT.

Пространство имен также предоставляет конечные точки сети, интегрированные с DNS. Он также предоставляет ряд функций управления доступом и управления сетевой интеграцией, таких как фильтрация общедоступных IP-адресов и частные каналы. Это также контейнер управляемых удостоверений, используемых для содержащихся ресурсов в пространстве имен.

Ниже приведены несколько дополнительных моментов о пространствах имен:

  • Пространство имен — это отслеживаемый ресурс с tags свойствами и location свойствами, и его можно найти в resources.azure.com.
  • Имя пространства имен может иметь длину 3–50 символов. Он может включать буквенно-цифровые и дефис(-), а также пробелы.
  • Имя должно быть уникальным для каждого региона.

Единицы пропускной способности

Единицы пропускной способности (TUS) определяют емкость частоты событий входящего трафика и исходящего трафика в пространствах имен. Дополнительные сведения см. в разделе Сетка событий Azure квоты и ограничения.

Разделы

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

Разделы пространства имен

Разделы пространства имен — это разделы, созданные в пространстве имен Сетки событий. Приложение публикует события в конечной точке пространства имен HTTP, указывая раздел пространства имен, в котором опубликованные события логически содержатся. При разработке приложения необходимо решить, сколько разделов нужно создать. Для относительно крупных решений создайте раздел пространства имен для каждой категории связанных событий. Например, рассмотрим приложение, которое управляет учетными записями пользователей и другим приложением о заказах клиентов. Вряд ли все подписчики событий хотят событий из обоих приложений. Чтобы разделить проблемы, создайте два раздела пространства имен: по одному для каждого приложения. Позвольте потребителям событий подписаться на раздел в соответствии с их требованиями. Для небольших решений, возможно, целесообразнее отправлять все события в один раздел.

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

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

Подписка на события — это ресурс конфигурации, связанный с одним разделом. Помимо прочего, вы используете подписку на события, чтобы задать критерии выбора событий, чтобы определить коллекцию событий, доступную подписчику из общего набора событий, доступных в разделе. События можно фильтровать в соответствии с требованиями подписчика. Например, можно фильтровать события по типу события. Можно также определить критерии фильтра для свойств данных события, если в качестве значения свойства данных используется объект JSON. Дополнительные сведения о свойствах ресурсов см. в REST API сетки событий.

Схема, показывающая раздел и связанные подписки на события.

Пример создания подписок для разделов пространства имен см. в статье "Публикация и использование сообщений с помощью тем пространства имен" с помощью ИНТЕРФЕЙСА командной строки.

Примечание.

Подписки на события в разделе пространства имен предоставляют упрощенную модель ресурсов по сравнению с той, которая используется для пользовательских, доменных, партнерских и системных разделов (Базовая сетка событий). Дополнительные сведения см. в статье "Создание, просмотр и управление подписками на события".

Доставка по запросу

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

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

Фигура данных при получении событий с помощью доставки по запросу

При доставке событий с помощью доставки по запросу сетка событий включает массив объектов, которые, в свою очередь, включают объекты event и brokerProperties . Значение свойства события — CloudEvent, доставленное в структурированное con режим палатки. Объект brokerProperties содержит маркер блокировки, связанный с доставленным CloudEvent. Следующий объект JSON представляет собой пример ответа от операции получения , возвращающей два события:

{
    "value": [
        {
            "brokerProperties": {
                "lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDXYS23Z+5Hq754VqQjxywE",
                "deliveryCount": 2
            },
            "event": {
                "specversion": "1.0",
                "id": "A234-1234-1235",
                "source": "/mycontext",
                "time": "2018-04-05T17:31:00Z",
                "type": "com.example.someeventtype",
                "data": "some data"
            }
        },
        {
            "brokerProperties": {
                "lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDLeaL+nRJLNq3/5NXd/T0b",
                "deliveryCount": 1
            },
            "event": {
                "specversion": "1.0",
                "id": "B688-1234-1235",
                "source": "/mycontext",
                "type": "com.example.someeventtype",
                "time": "2018-04-05T17:31:00Z",
                "data": {
                    "somekey" : "value",
                    "someOtherKey" : 9
                }
            }
        }
    ]
}

Отправка отправки

При принудительной доставке сетка событий отправляет события в место назначения, настроенное в подписке на события push-отправки (режим доставки). Он предоставляет надежную логику повторных попыток в случае, если назначение не может получать события.

Внимание

Доставка push-уведомлений пространств имен сетки событий в настоящее время поддерживает Центры событий Azure в качестве назначения. В будущем пространства имен Сетки событий будут поддерживать больше назначений, включая все назначения, поддерживаемые Сеткой событий Basic.

Доставка событий Центров событий

Служба "Сетка событий" использует пакет SDK центров событий для отправки событий в Центры событий с помощью AMQP. События отправляются в виде массива байтов с каждым элементом в массиве, содержащим CloudEvent.

Отправка и отправка по запросу

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

Внимание

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

Схема высокого уровня, показывающая доставку push-уведомлений и доставку по запросу с типом задействованных ресурсов.

Когда следует использовать доставку push-уведомлений и доставку по запросу

Ниже приведены общие рекомендации, которые помогут вам решить, когда следует использовать доставку по запросу или отправке.

Доставка по запросу

  • Вам нужен полный контроль о том, когда будут получать события. Например, приложение может не находиться в течение всего времени, недостаточно стабильно или обрабатывать данные в определенное время.
  • Вам нужен полный контроль над потреблением событий. Например, нижестоящей службы или слоя в приложении-получателе возникает проблема, которая предотвращает обработку событий. В этом случае API доставки по запросу позволяет приложению-потребителю освободить уже прочитанное событие обратно брокеру, чтобы его можно было доставить позже.
  • Вы хотите использовать частные ссылки при получении событий, что возможно только при доставке по запросу, а не при отправке push-уведомлений.
  • У вас нет возможности предоставлять конечную точку и использовать отправку push-уведомлений, но вы можете подключиться к сетке событий для использования событий.

Отправка отправки

  • Вы хотите избежать постоянного опроса, чтобы определить, что произошло изменение состояния системы. Вы скорее используете сетку событий для отправки событий во время изменения состояния.
  • У вас есть приложение, которое не может выполнять исходящие вызовы. Например, ваша организация может беспокоиться о краже данных. Однако приложение может получать события через общедоступную конечную точку.

Следующие шаги