MQTT协议理解和分析

本文探讨了MQTT协议的特点和优势,包括基于主题的消息、三个主要角色(发布者、代理、订阅者)以及服务质量(QoS)的三个级别。MQTT通过其规则确保消息的可达性和可靠性,适用于物联网场景,其消息头小、格式简洁。文章还提到了消息的ACK机制、最终一致性和事务支持等关键特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MQTT 困惑和思考

网上有大把对MQ消息队列的资料和分析,大部分都是针对网络协议,具体夸赞了MQ各种好处:低耦合、可靠投递、流量控制等等好处。是各大厂家必备的中间件。

当然,我是不理解的,MQTT分明就是建立在TCP网络协议上面,怎么就有了这么多好处?难道Tcp、Http、websocket都做不到这些吗?

后面在阅读了《MQTT比TCP协议好在哪儿?》之后,理解了MQTT的优势,其实是在于TCP基础上建立了一套完善的规则:连接服务器(检查合法性、断接、重连)、订阅主题、发布消息。在这套协议规则上,

你说我同样可以利用TCP、WebSocket等来实现这样的机制,当然是可以的。

但是在使用MQTT的时候,就不需要去考虑如何制定这套完整的规则,比如维护消息的可达性可靠性等等。我们可以不必操心消息传输的麻烦。

MQTT比起其他MQ协议有几个好处:消息头最小、格式简洁,所以占用带宽小,很适用于物联网,只提供了发布/订阅模式。

基于主题的消息

消息体分为主题(Topic)和负载(payload)两部分

  • Topic:为消息的主题,订阅者订阅(Subscribe)后,就会收到该主题的消息内容 payload
  • payload:可以理解为消息的内容,是指订阅者收到的内容

具体协议格式参考:
https://www.cnblogs.com/xueweisuoyong/p/11233522.html

MQTT 三个角色

  • Publish(发布者):基于主题+内容,负责发送消息

  • Broker(代理):MQTT服务端,负责消息从发送端传送到接收端</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值