Обзор функции брокера MQTT в Сетка событий Azure

Сетка событий Azure позволяет клиентам MQTT взаимодействовать друг с другом и службами Azure для поддержки решений Интернета вещей (IoT).

Компонент брокера MQTT Сетка событий Azure позволяет выполнять следующие сценарии:

  • Прием данных телеметрии с помощью шаблона обмена сообщениями "многие ко одному". Этот шаблон позволяет приложению выгрузить нагрузку на управление большим количеством подключений с устройствами в Сетку событий.
  • Управляйте клиентами MQTT с помощью шаблона обмена сообщениями "один к одному". Этот шаблон позволяет любому клиенту взаимодействовать с любым другим клиентом без ограничений независимо от ролей клиентов.
  • Трансляция оповещений в парк клиентов с помощью шаблона обмена сообщениями "один ко многим". Этот шаблон позволяет приложению публиковать только одно сообщение, которое служба реплика tes для каждого интересующего клиента.
  • Интеграция данных из клиентов MQTT путем маршрутизации сообщений MQTT в службы Azure и веб-перехватчики с помощью функции доставки push-отправки HTTP. Эта интеграция со службами Azure позволяет создавать конвейеры данных, начинающиеся с приема данных с устройств Интернета вещей.

Примеры кода, демонстрирующие эти сценарии в этом репозитории.

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

High-level diagram of Event Grid that shows bidirectional MQTT communication with publisher and subscriber clients.

Основные понятия

Ниже приведен список ключевых понятий, связанных с функцией брокера MQTT Сетка событий Azure.

MQTT

MQTT — это протокол транспорта обмена сообщениями с подпиской на публикацию, предназначенный для ограниченных сред. Это стандарт взаимодействия для сценариев Интернета вещей из-за эффективности, масштабируемости и надежности. Брокер MQTT позволяет клиентам публиковать и подписываться на сообщения по протоколу MQTT версии 3.1.1, MQTT версии 3.1.1 через WebSockets, MQTT v5 и MQTT v5 по протоколам WebSockets. В следующем списке показаны некоторые основные моменты функции брокера MQTT:

  • Возможности MQTT версии 5:

    • Свойства пользователя позволяют добавлять пользовательские пары "ключ-значение" в заголовок сообщения, чтобы предоставить больше контекста о сообщении. Например, включите назначение или источник сообщения, чтобы получатель смог эффективно обрабатывать сообщение.
    • Шаблон ответа на запрос позволяет клиентам воспользоваться стандартным асинхронным шаблоном ответа на запрос, указав раздел ответа и идентификатор корреляции в запросе, чтобы клиент ответил без предварительной настройки.
    • Интервал истечения срока действия сообщения позволяет объявлять брокеру MQTT, если игнорировать сообщение, которое больше не относится или недопустимо. Например, игнорируйте устаревшие команды или оповещения.
    • Псевдонимы разделов помогают клиентам уменьшить размер поля раздела, что делает передачу данных менее дорогой.
    • Максимальный размер сообщения позволяет клиентам контролировать максимальный размер сообщения, который они могут обрабатывать с сервера.
    • Максимальное число позволяет клиентам управлять скоростью сообщений в зависимости от их возможностей, таких как скорость обработки или возможности хранения.
    • Очистка срока действия и истечения срока действия сеанса позволяют клиентам оптимизировать надежность и безопасность сеанса, сохраняя сведения о подписке и сообщения клиента для настраиваемого интервала времени.
    • Отрицательные подтверждения позволяют клиентам эффективно реагировать на различные коды ошибок.
    • Отправленные сервером пакеты отключения позволяют клиентам эффективно обрабатывать отключения.
  • Брокер MQTT добавляет дополнительные функции MQTT версии 5 в будущем, чтобы выровнять больше с спецификациями MQTT. В следующих элементах подробно описаны текущие различия между функциями, поддерживаемыми брокером MQTT и спецификациями MQTT версии 5: сообщение, сохранение флага, упорядочивание сообщений и QoS 2 не поддерживаются.

  • Возможности MQTT версии 3.1.1:

    • Постоянные сеансы обеспечивают надежность, сохраняя сведения о подписке и сообщения клиента при отключении клиента.
    • QoS 0 и 1 обеспечивают клиентам контроль над эффективностью и надежностью связи.
  • Брокер MQTT добавляет дополнительные функции MQTT версии 3.1.1 в будущем, чтобы выровнять больше с спецификациями MQTT. В следующих элементах подробно описаны текущие различия между функциями, поддерживаемыми брокером MQTT и спецификацией MQTT версии 3.1.1: Будет сообщение, сохранить флаг, порядок сообщений и QoS 2 не поддерживается.

Дополнительные сведения о брокере MQTT и текущих ограничениях.

Модель обмена сообщениями publish-Subscribe

Модель обмена сообщениями публикации и подписки обеспечивает масштабируемую и асинхронную связь с клиентами. Это позволяет клиентам выгрузить нагрузку на обработку большого количества подключений и сообщений в службу. С помощью модели обмена сообщениями publish-Subscribe клиенты могут эффективно взаимодействовать с помощью шаблонов обмена сообщениями "один ко многим", "многие к одному" и "один к одному".

  • Шаблон обмена сообщениями "один ко многим" позволяет клиентам публиковать только одно сообщение, которое служба реплика tes для каждого интересующего клиента.
  • Шаблон обмена сообщениями "многие к одному" позволяет клиентам выгружать нагрузку на управление большим количеством подключений к брокеру MQTT.
  • Шаблон обмена сообщениями "один к одному" позволяет любому клиенту взаимодействовать с любым другим клиентом без ограничений независимо от ролей клиентов.

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

Пространство имен сетки событий — это контейнер управления для ресурсов, поддерживающих функциональные возможности брокера MQTT, а также ресурсы, поддерживающие функции доставки по запросу. Клиент MQTT может подключаться к брокеру MQTT и публиковать и подписываться на сообщения, а брокер MQTT проверяет подлинность клиентов, авторизует запросы на публикацию и подписку и пересылает сообщения заинтересованным клиентам. Дополнительные сведения о концепции пространства имен.

Клиенты

Клиенты ссылаются на устройства Интернета вещей или приложения, которые публикуют и подписываются на сообщения MQTT.

Устройства Интернета вещей — это физические объекты, подключенные к Интернету для передачи данных телеметрии и получения команд. Эти устройства могут быть датчиками, (модуль), компьютерами или другими объектами, оснащенными внедренными датчиками и программным обеспечением. Датчики и программное обеспечение позволяют им взаимодействовать друг с другом и окружающей средой. Ценность устройств Интернета вещей заключается в их способности предоставлять данные и аналитические сведения в режиме реального времени, позволяя предприятиям и отдельным лицам принимать обоснованные решения и повысить эффективность и производительность.

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

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

Служба "Сетка событий" содержит реестр клиентов, в который хранятся сведения о клиентах, разрешенных для подключения к нему. Прежде чем клиент сможет подключиться, в реестре клиентов должна быть запись. Как клиент подключается к брокеру MQTT, он должен пройти проверку подлинности с помощью брокера MQTT на основе учетных данных, хранящихся в реестре удостоверений. Брокер MQTT поддерживает проверку подлинности сертификата X.509, которая является стандартом проверки подлинности отрасли на устройствах Интернета вещей и идентификатором Microsoft Entra, который является стандартом проверки подлинности Azure для приложений.Дополнительные сведения о проверке подлинности клиента MQTT.

Управление доступом

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

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

Diagram of the access control model.

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

Маршрутизация

Сетка событий позволяет направлять сообщения MQTT в службы Azure или веб-перехватчики для дальнейшей обработки. Соответственно, можно создавать комплексные решения с помощью данных Интернета вещей для анализа данных, хранения и визуализаций, среди других вариантов использования. Конфигурация маршрутизации позволяет отправлять все сообщения MQTT от клиентов в раздел пространства имен сетки событий или настраиваемый раздел сетки событий. После отправки сообщений в раздел можно настроить подписку на события для использования сообщений из раздела. Например, эта функция позволяет использовать сетку событий для маршрутизации телеметрии с устройств Интернета вещей в Центры событий, а затем в Azure Stream Analytics для получения аналитических сведений от телеметрии устройства. Дополнительные сведения о маршрутизации.

Diagram of the MQTT message routing.

Интеграция брокера MQTT Edge

Служба "Сетка событий" интегрируется с Azure IoT MQ для моста с возможностями брокера MQTT на границе с функцией брокера MQTT Сетка событий Azure в облаке. Azure IoT MQ — это новый распределенный брокер MQTT для пограничных вычислений, работающий в кластерах Kubernetes с поддержкой Arc. Он может подключаться к брокеру MQTT Сетки событий с помощью проверки подлинности Microsoft Entra ID (ранее Azure Active Directory) с помощью управляемого удостоверения, назначаемого системой, что упрощает управление учетными данными. Azure IoT MQ обеспечивает высокий уровень доступности, масштабируемость и безопасность для устройств и приложений Интернета вещей. Теперь она доступна в общедоступной предварительной версии в рамках операций Интернета вещей Azure. Узнайте больше о подключении MQ Azure IoT к брокеру MQTT Сетка событий Azure.

События жизненного цикла клиентов MQTT

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

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

Дополнительные сведения о брокере MQTT и его основных понятиях см. в следующих статьях.

Основные понятия