首页 > 其他分享 >MQTT协议的优点和缺点

MQTT协议的优点和缺点

时间:2023-06-01 14:58:40浏览次数:47  
标签:协议 HTTP IoT MQTT 优点 缺点 推送 消息

翻译自:https://www.nabto.com/mqtt-protocol-iot/

MQTT的全称是Message Queue Telemetry Transmission。顾名思义,它是一个使用了发布-订阅模式的消息模型。在物联网的领域,MQTT已经被广泛使用。MQTT是建立在TCP/IP协议之上的应用层协议,有着简单的协议定义和结构,被越来越多物联网中各种小型,能耗低的产品用作数据通信。

MQTT协议的优点

能保证消息的可达性

很多IoT设备是穿戴式,可移动或者电池驱动的产品,这些特点导致IoT设备容易处于一些不稳定的环境中,比如网络信号较弱等。这时,MQTT协议的一个特点就是能保证无论在什么环境下,推送消息都是可靠的。MQTT通过把消息推送的可达性分为3个等级来更好地保证不同场景的需求。即QoS(Quality of Service):

  • Qos 0 : 最多推送一次;适用于在消息丢失是可以接受的场景下。
  • Qos 1: 至少都会推送一次;在消息推送必须要保证的时候适用。
  • Qos 2: 只推送一次;在最严格的场景下,必须保证消息被送达,且消息不能重复。

轻量

我们都很熟悉的HTTP协议,它的协议头可能都会占用8000字节,而MQTT协议只有2字节和一点点额外代码。所以MQTT协议的轻小为那些拥有很小内存或者很小额定电流的设备来说是个很好的选择。

对电池友好

MQTT协议是由IBM团队为了在一些非常严苛条件下适用而开发的,所以基于此协议的数据交换本身耗电非常低,和HTTP协议比较起来更是天差地别。在3G网络下,MQTT消耗的电量是HTTP的1/170;在Wi-Fi网络下,是HTTP的1/47。

MQTT协议的缺点

MQTT不适用于视频流

开发复杂

对于开发者来说,由于其异步,发布订阅的特点,这些对于传统同步阻塞编程来说显得更复杂一些。

延时的问题

MQTT同样不适用于对于延时要求严苛低的IoT的设备,比如医疗器械。

没有内置安全层

如果你需要保证消息的安全性,你需要自己在该协议之上,构建一层安全层如SSL/TLS。

标签:协议,HTTP,IoT,MQTT,优点,缺点,推送,消息
From: https://www.cnblogs.com/rachel-aoao/p/mqtt_pros_and_cons.html

相关文章

  • golang实现设计模式之构建者模式总结-代码、优缺点、适用场景
    构建者模式也是一种创建型的设计模式,该模式将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的对象。大白话就是,构建者模式,从输出角度看依然是创建个对象实例,但是构建者模式更关注创建的细节,或者说一个对象的创建可以拆分为多个步骤,所有的步骤完成才创建出这个对......
  • mqtt订阅地址有串了情况是怎么回事「艾思科技」
    当mqtt订阅地址出现串连的情况时,可能有以下几种可能的原因: 订阅主题错误:订阅地址中指定的主题可能有误。在mqtt中,订阅地址通常由主题和客户端ID组成,如果主题名称或者客户端ID设置错误,可能会导致订阅地址出现串连的情况。网络问题:mqtt订阅地址的传输......
  • JavaScript中的Hook技术:特性、优点、缺点和使用场景
    引言:随着JavaScript的不断发展,开发者们正在寻找更灵活和可扩展的方式来修改或扩展现有的代码。其中一种广泛应用的技术是"Hook",它允许开发者拦截和修改现有的函数或方法的行为。本文将详细介绍JavaScript中的Hook技术,包括其特性、优点、缺点和使用场景,并提供示例代码进行说明。什么......
  • golang实现设计模式之抽象工厂模式总结-代码、优缺点、适用场景
    抽象工厂模式也是一种创建型的设计模式,其是在工厂模式的基础上实现更高程度的内聚。我们知道在工厂模式中,一种产品类就需要新建个对应的工厂类生成产品的实例,这会有什么问题呢?虽然工厂模式解决了简单工厂模式不好扩展的问题,实现了OCP,但一种产品就需要新建一个工厂类,比如有10000种......
  • golang实现设计模式之工厂模式总结-代码、优缺点、适用场景
    工厂模式也是一种创建型模式,它与简单工厂不同的是将实例的创建推迟到具体的工厂类方法中实现,每一种产品生成一个对应的工厂,从而替换掉简单工厂方法模式中那个静态工厂方法。所以在工厂模式中,不同产品就由不同的工厂生产,每次增加产品时,我们就不需要在类似在简单工厂中,在统一的工厂......
  • 相比其他流程引擎,ccflow的优点主要包括以下几点
    相比其他流程引擎,ccflow的优点主要包括以下几点:1.面向业务的设计理念:cclow的设计理念是面向业务的,可以快速地构建符合实际业务流程需求的流程与其他流程引警相比,ccfow更加注重业务流程的灵活性和可扩展性,可以高效地定制各种复杂的业务流程。2.可视化流程设计器:ccflow提供可视......
  • MQTT协议简介
    ##一、MQTT协议简介MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。![img.png](img.png)MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提......
  • 深度学习进阶篇-预训练模型[3]:XLNet、BERT、GPT,ELMO的区别优缺点,模型框架、一些Trick
    深度学习进阶篇-预训练模型[3]:XLNet、BERT、GPT,ELMO的区别优缺点,模型框架、一些Trick、TransformerEncoder等原理详细讲解1.XLNet:GeneralizedAutoregressivePretrainingforLanguageUnderstanding1.1.从AR和AE模型到XLNet模型自回归模型(AutoregressiveModel,AR),通过估计......
  • 浅谈云服务器有哪些优点?
    目前,云服务器大有赶超虚拟主机、VPS和传统物理服务器,成为最具潜力占领互联网服务托管平台市场最大份额的新兴IT部署模式。最近,各大云服务商纷纷推出低价云服务器、免费试用、免费领取等活动,并在各大媒体投放大量广告,谋求占据更高的市场份额。那么,云服务器到底有哪些优势?归根到底,云......
  • MQTT入门DEMO(Java语言)
    目录快速开始准备下载及安装第一次安装EMQX第一次运行EMQX客户端代码快速开始准备MQTT简介EMQX简介下载及安装第一次安装EMQX版本选择EMQX支持多种操作系统,请选择合适您的版本下载。下载地址:https://www.emqx.io/cn/downloads#broker在MicrosoftWindows下安装目前EMQX......