我是靠谱客的博主 热情羽毛,最近开发中收集的这篇文章主要介绍MQTT在MQ上添加的十大优势,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

消息队列概述

  • Producer:消息生产者,负责产生和发送消息到 Broker。

  • Broker:消息处理中心。负责消息存储、确认、重试等,一般其中会包含多个 queue。

  • Consumer:消息消费者,负责从 Broker 中获取消息,并进行相应处理。

MQ的基础特性,MQTT也有:

MQTT在MQ上添加的十大优势:

1.精简,不添加可有可无的功能。以发布/订阅(Pub/Sub)模式为中心,方便消息在传感器之间传递。

只需要创建一个Client就够了,通过Client可以调用所以的方法和属性

运用MQTT协议,设备可以很方便地连接到物联网云服务,管理设备并处理数据,最后应用到各种业务场景,如下图所示:

2.把传输量降到最低以提高传输效率。因为MQTT协议的头很小。

消息架构如下:

把低带宽、高延迟、不稳定的网络等因素考虑在内。使用的是TCP协议。

Client(client_id = “” , clean_session = True , userdata = None, protocol= MQTTv311 , transport = “tcp” )

支持连续的会话控制。对于需要实时监控的设备,可以建立连续的会话。

假设数据不可知,不强求传输数据的类型与格式,保持灵活性。

3.MQTT提供层级主题:

     MQTT是通过主题对消息进行分类的,本质上就是一个UTF-8的字符串,不过可以通过反斜杠表示多个层级关系。主题并不需要创建,直接使用就是了。

    主题还可以通过通配符进行过滤。其中,+可以过滤一个层级,而#只能出现在主题最后表示过滤任意级别的层级。

    举个例子:

  • building-b/floor-5:代表B楼5层的设备。
  • +/floor-5:代表任何一个楼的5层的设备。
  • building-b/#:代表B楼所有的设备。

注意,MQTT允许使用通配符订阅主题,但是并不允许使用通配符广播。

4.MQTT提供多个QoS选项(exact once、at least once、at most once):

5.MQTT代理加上了对WebSockets的支持,可以方便地实现如下场景:

  •     显示设备的实时信息
  •     接收报警等推送信息
  •     查看设备的历史消息

6.MQTT提供了多个层次的安全特性:

  •     网络层:有条件可以通过拉专线或者使用VPN来连接设备与MQTT代理,以提高网络传输的安全性。
  •     传输层:传输层使用TLS加密是确保安全的一个好手段,可以防止中间人攻击(Man-In-The-Middle Attack)。客户端证书不但可以作为设备的身份凭证,还可以用来验证设备。
  •     应用层:MQTT还提供客户标识(Client Identifier)以及用户名密码,在应用层验证设备。

   应用层的安全特性设置密码:
7.设置了一个Will,如果客户端异常断开链接,borker会发送一个遗嘱信息
8.当执行loop时,才能对消息进行处理
9.MQTT为开发者提供了大量的回调函数,实时的可以监控当前状态,可以对发生的事件进行及时的应对。

对于异常的状态信息进行返回,比如publish。

  • 消息类型
  • 消息类型    类型    编码说明
  • reserved       0        保留
  • connect        1         客户端到服务端的连接请求
  • connACK     2          服务端对连接请求的响应
  • publish         3           发布消息
  • puback         4           新发布消息确认,是QoS 1给PUBLISH消息的回复
  • pubRec        5           QoS 2消息流的第一部分,表示消息发布已记录
  • pubRel          6           QoS 2消息流的第二部分,表示消息发布已释放
  • pubComp      7           QoS 2消息流的第三部分,表示消息发布完
  • subscribe      8           客户端订阅某个主题
  • subBack        9           对于SUBSCRIBE消息的确认
  • unsubscribe 10           客户端终止订阅的消息
  • unsubBack   11       对于UNSUBSCRIBE消息的确认
  • pingReq        12       心跳
  • pingResp      13        确认心跳
  • disconnect    14        客户端终止连接前通知MQTT代理
  • reserved        15        保留

10.对于只需要建立一次连接,发送大量数据的情况,MQTT提供了simple方法供开发者调用。

single(topic, payload=None, qos=0, retain=False, hostname="localhost",    port=1883, client_id="", keepalive=60, will=None, auth=None, tls=None,    protocol=mqtt.MQTTv311, transport="tcp")

最后

以上就是热情羽毛为你收集整理的MQTT在MQ上添加的十大优势的全部内容,希望文章能够帮你解决MQTT在MQ上添加的十大优势所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部