MQTT 和其他消息队列的传输协议有什么不同?
从宏观上来说,MQTT 和其他消息队列采用的传输协议是差不多的。它采用的也是发布 - 订阅的消息模型。网络结构上,也是 C/S 架构,IoT 设备是客户端,Broker 是服务端,客户端与 Broker 通信进行收发消息。
特点: 它的客户端都是运行在 IoT 设备上。这样的设备就需要通信协议不能太复杂,功能不能太多。另外,IoT 设备一般都采用无线连接,很多设备都是经常移动的,这就导致,IoT 设备的网络连接不稳定,并且这种不稳定的网络是一个常态。
在协议的报文设计上极其的精简,可以说是惜字如金。协议的功能也非常简单,基本上就只有发布订阅主题和收发消息这两个最核心的功能。
务端需要支撑海量的 IoT 设备同时在线。
如何选择 MQTT 产品?
一些开源的 MQTT Server,很多根本就没有集群功能,或者集群功能做的不太完善。
如果你接入 IoT 设备数量在十万以内,是可以选择开源产品的,如果说客户端的规模超过十万的量级,需要支撑这么大规模的客户端数量,服务端只有单个节点肯定是不够的,必须用一个集群来支持,并且这个集群是要能支持水平扩容的,这些都是最基本的要求。