概述
消息队列概述
-
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上添加的十大优势所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复