Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Операции Интернета вещей Azure включает брокер MQTT, соответствующий корпоративному классу и стандартам. Брокер MQTT является масштабируемым, высокодоступным и родным для Kubernetes. Он предоставляет платформу обмена сообщениями для Операции Интернета вещей Azure, обеспечивает двунаправленное взаимодействие между облаком и периферией и поддерживает событийно-управляемые приложения на границе.
Соответствие MQTT
MQTT — это общий протокол в пространстве Интернета вещей. Его простой дизайн позволяет одному брокеру обслуживать тысячи клиентов одновременно, создавая и управляя темами с легкой системой публикации и подписки. Многие устройства Интернета вещей изначально поддерживают MQTT. Подчиненные шлюзы перевода преобразуют различные протоколы Интернета вещей в MQTT.
Брокер MQTT поддерживает уровень обмена сообщениями в Операции Интернета вещей Azure и совместим с MQTT версии 3.1.1 и MQTT версии 5. Дополнительные сведения о поддерживаемых функциях MQTT см. в разделе "Поддержка функций MQTT" в брокере MQTT.
Архитектура
Брокер MQTT имеет два основных уровня:
- Внешний интерфейс без отслеживания состояния
- Уровень серверной части с сохранением состояния и шардированием
Интерфейсный слой обрабатывает клиентские подключения и запросы, а затем направляет их в серверную часть. Внутренний слой секционирует данные по ключам, например идентификатор клиента для сеансов клиента и имя раздела для сообщений тем. Внутренний слой использует репликацию цепочки для копирования данных в каждой секции.
Цели архитектуры:
- Отказоустойчивость и изоляция: Публикация сообщений продолжается, если серверные контейнеры терпят сбой, и сбои не распространяются на остальную часть системы.
- Восстановление отказов: автоматическое восстановление отказа без вмешательства оператора.
- Нет потери сообщений: сообщения доставляются, если выполняется по крайней мере один интерфейсный модуль pod и один серверный модуль в секции.
- Эластичное масштабирование: Горизонтальное масштабирование производительности для процессов публикации и подписки поддерживает пограничные и облачные развертывания.
- Согласованная производительность в масштабе: ограничивает задержку сообщений из-за репликации цепочки.
- Операционная простота. Уменьшает зависимость от внешних компонентов, чтобы упростить обслуживание и сложность.
Настройка
Для настройки брокер MQTT использует несколько пользовательских ресурсов Kubernetes для определения различных аспектов поведения и функциональности брокера:
- Основным ресурсом является брокер, который определяет глобальные параметры, такие как кратность, профиль использования памяти и параметры диагностики.
- Ресурс брокера может содержать до трех брокеров, каждый из которых прослушивает входящие подключения MQTT по указанному типу службы (
NodePortилиLoadBalancerClusterIP). Каждый ресурс BrokerListener может иметь несколько портов. - Каждый порт в ресурсе BrokerListener можно связать с ресурсом BrokerAuthentication и ресурсом BrokerAuthorization. Эти политики проверки подлинности и авторизации определяют, какие клиенты могут подключаться к порту и какие действия они могут выполнять на брокере.
Внимание
Используйте портал Azure или Azure CLI для управления прослушивателями брокера.
Связь между брокером и BrokerListener является одной ко многим, а связь между BrokerListener и BrokerAuthentication/BrokerAuthorization — многие ко многим. Схема связей сущностей для этих ресурсов:
По умолчанию IoT Операции развертывают default Broker, default BrokerListener, и default BrokerAuthentication. Все эти ресурсы называются по умолчанию. Вместе эти ресурсы предоставляют базовую настройку брокера MQTT, необходимую для работы операций Интернета вещей. Настройка по умолчанию:
Внимание
Чтобы избежать нарушения взаимодействия между внутренними компонентами Операций Интернета вещей, не изменяйте конфигурацию по умолчанию.
Чтобы настроить развертывание брокера MQTT, добавьте новые ресурсы, такие как BrokerListeners, BrokerAuthentication и BrokerAuthorization в брокер по умолчанию.
Ресурс брокера неизменяем и не может быть изменен после развертывания, но требует настройки только в сложных сценариях. Дополнительные сведения о настройке ресурса брокера см. в разделе "Настройка брокера по умолчанию".
В полном развертывании вы можете использовать несколько BrokerListeners, каждый из которых имеет несколько портов, и каждый порт может иметь различные ресурсы BrokerAuthentication и BrokerAuthorization, связанные с ним.
Например, начиная с установки по умолчанию, вы добавляете следующее:
- LoadBalancer BrokerListener с именем example-lb-listener и двумя портами: 1883 и 8883.
- NodePort BrokerListener с именем example-nodeport-listener с одним портом 1884 (
nodePort31884). - Ресурс BrokerAuthentication с именем example-authn с пользовательским методом проверки подлинности.
- Ресурс BrokerAuthorization с именем example-authz с пользовательскими параметрами авторизации.
Если настроить все новые порты с теми же ресурсами BrokerAuthentication и BrokerAuthorization, настройка выглядит следующим образом:
Этот подход сохраняет настройку по умолчанию без изменений и позволяет добавлять новые ресурсы для настройки развертывания брокера MQTT.
Ресурс брокера по умолчанию
Каждое развертывание Операций Интернета вещей может иметь только один брокер, и оно должно быть названо по умолчанию. Ресурс брокера по умолчанию необходим для работы операций Интернета вещей. Он неизменяем и не может быть изменен после развертывания.
Внимание
Не удаляйте ресурс брокера по умолчанию. Это нарушает взаимодействие между внутренними компонентами Операций Интернета вещей и развертывание перестает работать.
Настройка брокера по умолчанию
Настройка ресурса брокера по умолчанию не требуется для большинства настроек. Параметры, требующие настройки, включают:
- Кардинальность: Определяет емкость брокера для обработки большего количества подключений и сообщений, а также увеличивает высокую доступность в случае сбоев pod или узла.
- Профиль памяти. Задает максимальное использование памяти брокера и как обрабатывать использование памяти по мере увеличения масштаба брокера.
- Буфер сообщений с резервной копией диска: настройка буферизации сообщений на диск по мере заполнения ОЗУ.
- Параметры диагностики: настройка параметров диагностики, таких как уровень журнала и конечная точка метрик.
- Дополнительные параметры клиента MQTT: настройка расширенных параметров клиента MQTT, таких как срок действия сеанса, истечение срока действия сообщения и сохранение активности.
- Шифрование внутреннего трафика: настройка шифрования внутреннего трафика между интерфейсными и внутренними модулями pod брокера.
Брокер по умолчанию можно настроить только во время первоначального развертывания с помощью Azure CLI или портала Azure. Новое развертывание требуется, если вам нужны разные параметры конфигурации брокера.
Чтобы настроить брокер по умолчанию во время развертывания, следуйте инструкциям для метода развертывания:
При выполнении руководства по развертыванию операций Интернета вещей в разделе "Конфигурация " просмотрите конфигурацию брокера MQTT. Здесь можно настроить параметры кардинальности и профиля памяти. Чтобы настроить другие параметры, включая буфер сообщений с поддержкой диска и дополнительные параметры клиента MQTT, используйте Azure CLI.
Внимание
Вы не можете обновить ресурс брокера после первоначального развертывания. Изменения конфигурации кардинальности, профиля памяти или буфера диска запрещены после развертывания.
В качестве обходного решения при развертывании Операции Интернета вещей Azure с помощью команды az iot ops create можно включить параметр --broker-config-file с файлом конфигурации JSON для брокера MQTT. Дополнительные сведения см. в разделе "Планирование развертывания".
Просмотр параметров брокера по умолчанию
Чтобы просмотреть параметры брокера по умолчанию, выполните следующие действия.
- На портале Azure перейдите к вашему экземпляру IoT Operations.
- В разделе "Компоненты" выберите MQTT Broker.
- В разделе "Сведения о брокере" выберите вид JSON.