MQTT — это упрощенный протокол публикации-подписки, используемый поверх TCP/IP. Он часто используется в сценариях Интернета вещей. MQTT использует брокер сообщений для отправки сообщений между отправителями, которые публикуют сообщения, и получателями, которые заинтересованы в этих сообщениях. можно публиковать и подписываться на сообщения.
MQTT определяет три уровня качества обслуживания, то есть QoS. Что означают эти три уровня? Предполагается, что многие друзья, использующие MQTT, не обращают на это особого внимания. Иногда вы сталкиваетесь с проблемами, особенно странными. об этом Сегодня Руй Ге расскажет вам больше о QoS MQTT. Давайте сразу начнем!
Прежде чем запускать QoS, нам необходимо знать MQTT.
MQTT выполняет три роли:
Из описаний трех ролей нетрудно обнаружить, что процесс доставки сообщений выглядит примерно следующим образом:
Стоит отметить, что публикация и подписка также имеют понятие Topic, что это такое.
В приведенном выше описании мне интересно, есть ли у вас какие-либо сомнения. Издатель отправляет сообщение Брокеру, а Брокер распространяет его во внешний мир. Знает ли Брокер, как его отправить? Бессмысленная групповая переписка? Все ли сообщения подписчики получают бездумно?
Если это действительно так, то это повсюду!
Так что Тема приходит на помощь!
Если вы не знаете, как понять эту тему, вы думаете об этой теме как о канале или об одной из тем как о моем официальном аккаунте [Станция Network Technology Alliance Station]. Если вы читаете статью, следите за официальной страницей. учетная запись в WeChat. Она определенно ограничена. Вы являетесь подписчиком, а я — автором, поэтому это эквивалентно издателю сообщения, а сервер WeChat эквивалентен брокеру. Я думаю, вы понимаете эту концепцию, верно?
Вот представьте, вы подписались на все паблики? Или вы можете видеть новости, опубликованные в каждом общедоступном аккаунте? Или сервер WeChat отправляет вам все официальные сообщения учетной записи?
Является ли ответ на все это: «Нет»?
Итак, первое, что нужно прояснить, это то, что метод push-уведомлений официальных аккаунтов WeChat аналогичен модели «публикация-подписка». Как же понять эту тему?
Вы можете просто понимать это как мой официальный аккаунт [Станция Альянса сетевых технологий], но в области WeChat тема может быть [Станция Альянса технологий/Информационных технологий/Сетевых технологий].
В MQTT темы также соединяются через «/», который является каналом сообщений. Издатель сообщения публикует сообщение в определенной теме, и подписчики, подписавшиеся на эту тему, могут получить это сообщение.
Выше приведено краткое объяснение процесса передачи сообщений MQTT. Далее мы представляем QoS MQTT.
Уровень качества обслуживания (QoS) — это соглашение между отправителем сообщения и получателем сообщения, которое определяет гарантии доставки конкретного сообщения.
В MQTT есть 3 уровня QoS:
Кто-то правГарантии доставки конкретных сообщенийэтотиндивидуальный Я не совсем понимаю короткие предложения.,как называетсягарантия доставки?
Позвольте мне привести вам пример. Например, если вы пойдете в определенную компанию, чтобы найти кого-то, первое, что вы увидите после прибытия в эту компанию, — это персонал стойки регистрации. , ты говоришь: «Здравствуй, красавица, я ищу тебя». Король компании, пожалуйста, позови меня!»
В это время компания может быть слишком занята и администратор красоты не услышала ваше сообщение, поэтому вы продолжали спрашивать там, или просто спросили один раз и не заботились о результате.
Другая ситуация заключается в том, что сотрудники стойки регистрации узнали об этом и пошли искать менеджера, которого вы искали. Возможно, менеджер пошел на встречу и не был на своем столе. В это время на стойке регистрации также есть две ситуации. ходить туда-сюда, пока он не найдет, надо один раз поискать, неважно, найдешь или нет, больше искать не будешь.
Итак, если вы понимаете вышесказанное, я снова расскажу о QoS, и вы легко это поймете.
Говоря о QoS в MQTT, необходимо учитывать два аспекта обмена сообщениями:
Мы рассмотрим два индивидуальных аспекта обмена сообщениями отдельно.,Потому что между ними естьсуществоватьнюансы。Публикация сообщений клиентам через посредника(ты)существовать Агенту(стойка регистрации)发送消息时定义了消息的 QoS 级别(сколько раз кричал),Прокси используется для каждой индивидуальной подписки, существующего клиента, определенного в процессе подписки. QoS Уровень передает это сообщение подписывающемуся клиенту в это время, если подписывающийся клиент определяет. QoS ниже клиента публикации,тогда агент будетнижеКачество сервиса отправки сообщений。
Как вы понимаете последнее предложение, например, ты стоишь? регистрация крик один раз, обычно, стойка регистрации поможет тебе пойти на королевский вокзал и крикнуть один раз,Или не кричи,этотиндивидуальный Понимать,этотиндивидуальныйда Нетда Сразуда【Агент будетнижеКачество сервиса отправки сообщений】понимание,Или ты кричишь дважды, чтобы стоять на регистрации,стойка регистрация может помочь ты крикнешь один раз、Крикнуть дважды (максимум)、Даже не крича.
Если вы сможете понять примеры, которые я привел выше, вам будет очень легко понять QoS на каждом уровне ниже!
Почему бы тебе сначала не поставить лайк статье, старик!
максимум один раз
QoS 0 Доставка осуществляется с максимальной эффективностью, и доставка сообщения не гарантируется. когда MQTT клиент с QoS 1 При запуске MQTT Брокер не подтверждает получение, сообщение не сохраняется и не отправляется отправителем повторно, QoS 0 часто называют“Выбросить”,Обеспечить и положить в основу TCP Та же гарантия, что и в договоре.
хотя бы один раз
QoS 1 Гарантировано сообщение, хотя бы один раз передан получателю, MQTT Агент будет использовать PUBACK Подтвердите сообщение. MQTT Клиент будет хранить сообщение до тех пор, пока не получит его от брокера. PUBACK,MQTT Клиент может доставить сообщение несколько раз, пока не получит подтверждение от брокера.
Отправитель использует идентификатор пакета в каждом пакете для сопоставления пакета PUBLISH с соответствующим пакетом PUBACK, и если отправитель не получает пакет PUBACK в течение разумного времени, отправитель повторно отправляет пакет PUBLISH.
только один раз
QoS 2 да MQTT Самый высокий уровень обслуживания в России. Этот уровень гарантирует, что каждое сообщение будет получено предполагаемым получателем только один раз, QoS 2 дасамый безопасныйисамый медленныйуровень качества обслуживания,该保证由发送方и接收方之间的по крайней мере двапросить/поток ответов(четыре рукопожатия)поставлять,发送方и接收方使用原始 PUBLISH Идентификатор пакета сообщения для координации доставки сообщения.
Когда получатель получает пакет PUBLISH QoS 2 от отправителя, он обрабатывает сообщение публикации соответствующим образом и отвечает отправителю пакетом PUBREC, подтверждающим пакет PUBLISH. Если отправитель не получает пакет PUBREC от получателя, он снова отправляет пакет PUBLISH с флагом дубликата (DUP) до тех пор, пока не будет получено подтверждение.
в последние годы,Развитие Интернета вещей,Делаем протокол MQTT все более ароматным,Качество обслуживания в MQTT также является важным понятием в даQoSдаMQTT.,Когда используется ты,Я нашел тебя и, очевидно, хотел отправить сообщение,Но журнал показывает, что ты отправил несколько сообщений.,Тыда действительно опубликовала несколько сообщений? Нет,Вы можете проверить настройки QoS вашего,Тогда, если вы не понимаете, вы можете прочитать больше об этой статье.,В этой статье подробно представлены три уровня QoS.,Надеюсь, он принесет вам урожай!
Если вы считаете, что эта статья поможет вам понять концепцию QoS MQTT, не забудьте поставить лайк и собрать ее. Если у вас есть какие-либо вопросы, обсудите со мной в области комментариев. Спасибо за чтение!