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


Встроенный локальный брокер MQTT операций Интернета вещей Azure

Внимание

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

Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.

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

Соответствие MQTT

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

Брокер MQTT поддерживает уровень обмена сообщениями в Операциях Интернета вещей и поддерживает MQTT версии 3.1.1 и MQTT версии 5. Дополнительные сведения о поддерживаемых функциях MQTT см. в разделе "Поддержка функций MQTT" в брокере MQTT.

Архитектура

Брокер MQTT имеет два основных уровня:

  • Внешний интерфейс без отслеживания состояния
  • Уровень серверной части с отслеживанием состояния и сегментирован

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

Цели архитектуры:

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

Настройка

Для настройки брокер MQTT состоит из нескольких пользовательских ресурсов Kubernetes, определяющих различные аспекты поведения и функциональности брокера:

  • Основной ресурс — Broker, который определяет глобальные параметры, такие как кратность, профиль использования памяти и параметры диагностики.
  • Ресурс брокера может содержать до трех брокеров, каждый из которых прослушивает входящие подключения MQTT по указанному типу службы (NodePortилиLoadBalancerClusterIP). Каждый ресурс BrokerListener может иметь несколько портов.
  • Каждый порт в ресурсе BrokerListener можно связать с ресурсом BrokerAuthentication и ресурсом BrokerAuthorization. Эти политики проверки подлинности и авторизации определяют, какие клиенты могут подключаться к порту и какие действия они могут выполнять на брокере.

Связь между брокером и брокеромListener — одно ко многим. Связь между BrokerListener и BrokerAuthentication/BrokerAuthorization — "многие ко многим". Схема связей сущностей для этих ресурсов:

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

По умолчанию Операции Интернета вещей развертывают брокер по умолчанию, брокер по умолчанию и брокерAuthentication по умолчанию. Все эти ресурсы называются по умолчанию. Вместе эти ресурсы предоставляют базовую настройку брокера MQTT, необходимую для работы операций Интернета вещей. Настройка по умолчанию:

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

Внимание

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

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

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

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

Например, начиная с установки по умолчанию, вы добавляете следующее:

  • LoadBalancer BrokerListener с именем example-lb-listener с двумя портами 1883 и 8883.
  • NodePort BrokerListener с именем example-nodeport-listener с одним портом 1884 (nodePort 31884).
  • Ресурс BrokerAuthentication с именем example-authn с пользовательским методом проверки подлинности.
  • Ресурс BrokerAuthorization с именем example-authz с пользовательскими параметрами авторизации.

Затем, если настроить все новые порты с помощью одних и тех же ресурсов BrokerAuthentication и BrokerAuthorization, настройка выглядит следующим образом:

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

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

Ресурс брокера по умолчанию

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

Внимание

Не удаляйте ресурс брокера по умолчанию. Это нарушает взаимодействие между внутренними компонентами Операций Интернета вещей и развертывание перестает работать.

Настройка брокера по умолчанию

Настройка ресурса брокера по умолчанию не требуется для большинства настроек. Параметры, требующие настройки, включают:

  • Кратность. Определяет емкость брокера для обработки дополнительных подключений и сообщений, а также повышает доступность при сбоях модуля pod или узла.
  • Профиль памяти. Задает максимальное использование памяти брокера и как обрабатывать использование памяти по мере увеличения масштаба брокера.
  • Буфер сообщений с резервной копией диска: настройка буферизации сообщений на диск по мере заполнения ОЗУ.
  • Параметры диагностики: настройка параметров диагностики, таких как уровень журнала и конечная точка метрик.
  • Дополнительные параметры клиента MQTT: настройка расширенных параметров клиента MQTT, таких как срок действия сеанса, истечение срока действия сообщения и сохранение активности.
  • Шифрование внутреннего трафика: настройка шифрования внутреннего трафика между интерфейсными и внутренними модулями pod брокера.

Брокер по умолчанию можно настроить только во время первоначального развертывания с помощью Azure CLI или портал Azure. Новое развертывание требуется, если вам нужны разные параметры конфигурации брокера.

Чтобы настроить брокер по умолчанию во время развертывания:

При выполнении руководства по развертыванию операций Интернета вещей в разделе "Конфигурация " просмотрите конфигурацию брокера MQTT. Здесь можно настроить параметры кратности и профиля памяти. Чтобы настроить другие параметры, включая буфер сообщений с поддержкой диска и расширенные параметры клиента MQTT, используйте Azure CLI.

Просмотр параметров брокера по умолчанию

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

  1. В портал Azure перейдите к экземпляру Операций Интернета вещей.
  2. В разделе "Компоненты" выберите MQTT Broker.
  3. В разделе "Сведения о брокере" выберите представление JSON.