MQTT协议是什么
这篇文章的知识点包括:MQTT协议的概念、MQTT协议的应用场景以及MQTT协议的服务器介绍,阅读完整文相信大家对MQTT协议有了一定的认识。
1. MQTT是什么?
MQTT全称消息队列遥测传输 (Message Queuing Telemetry Transport)。其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发,属于物联网(Internet of Thing)的一个标准传输协议。
2. MQTT的历史
IBM公司的安迪·斯坦福-克拉克及Arcom公司的阿兰·尼普于1999年撰写了该协议的第一个版本。
IBM公司在2013年就向结构化资讯标准促进组织提交了 MQTT 3.1 版规范,并附有相关章程,以确保只能对规范进行少量更改。
2019年四月,MQTT 发布v5.0版本,现在是官方的OASIS标准。
3. MQTT有哪些用途
自1999年以来,MQTT已广泛应用于各个行业。因为MQTT已经成为标准的物联网传输协议,很多的物联网设备都采用这些协议传输数据,而各行各业基本上都少不了各种各样的物联网设备。
除MQTT协议外,以下协议也是常见的工业协议:
- OPC UA
- Modbus TCP /RTU
- PROFINET
- RS232/RS485
4. MQTT的服务质量
MQTT支持三种消息发布服务质量(QoS):
- 至多一次"(QoS==0)
消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。 - 至少一次"(QoS==1)
确保消息到达,但消息重复可能会发生。 - 只有一次"(QoS==2)
确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。
5. 常见的MQTT服务器
- Apache Apollo
- Mosquitto
- Apache ActiveMQ
- RabbitMQ
- EMQTT
在以上常见的MQTT服务器中,emqtt,并发最高,但cpu占用较高,稳定性高,但是消息发送较慢。moqtuitto,发送消息快,稳定性高,cpu占用很少,并发比较高。其它的稳定性不太高
6. MQTT实现方式
实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
(1)Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
(2)payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
看完上述内容,你们对MQTT协议有进一步的了解吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!