文章目录
MQTT 困惑和思考
网上有大把对MQ消息队列的资料和分析,大部分都是针对网络协议,具体夸赞了MQ各种好处:低耦合、可靠投递、流量控制等等好处。是各大厂家必备的中间件。
当然,我是不理解的,MQTT分明就是建立在TCP网络协议上面,怎么就有了这么多好处?难道Tcp、Http、websocket都做不到这些吗?
后面在阅读了《MQTT比TCP协议好在哪儿?》之后,理解了MQTT的优势,其实是在于TCP基础上建立了一套完善的规则:连接服务器(检查合法性、断接、重连)、订阅主题、发布消息。在这套协议规则上,
你说我同样可以利用TCP、WebSocket等来实现这样的机制,当然是可以的。
但是在使用MQTT的时候,就不需要去考虑如何制定这套完整的规则,比如维护消息的可达性可靠性等等。我们可以不必操心消息传输的麻烦。
MQTT比起其他MQ协议有几个好处:消息头最小、格式简洁,所以占用带宽小,很适用于物联网,只提供了发布/订阅模式。
基于主题的消息
消息体分为主题(Topic)和负载(payload)两部分
- Topic:为消息的主题,订阅者订阅(Subscribe)后,就会收到该主题的消息内容 payload
- payload:可以理解为消息的内容,是指订阅者收到的内