Встроенный локальный брокер 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
илиLoadBalancer
ClusterIP
). Каждый ресурс 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.
Просмотр параметров брокера по умолчанию
Чтобы просмотреть параметры для брокера по умолчанию, выполните следующие действия.
- В портал Azure перейдите к экземпляру Операций Интернета вещей.
- В разделе "Компоненты" выберите MQTT Broker.
- В разделе "Сведения о брокере" выберите представление JSON.