MQTT协议:如何支持海量的在线IoT设备?

发布时间 2023-05-26 16:45:58作者: 八英里

MQTT 就是专门为物联网设备设计的一套标准的消息队列通信协议。使用 MQTT 协议的 IoT 设备,可以连接到任何支持 MQTT 协议的消息队列上,进行通信。

虽然 MQTT 和普通的消息队列相比,在消息模型、功能和网络结构上都是差不多的,但由于他们面对的使用场景是不一样的,所以,MQTT 和普通的消息队列相比,还是有很多区别的。我们看一下 MQTT 的使用场景有什么样的特点?

首先,它的客户端都是运行在 IoT 设备上。这种设备不能和我们普通消息队列的客户端比,Iot的设备成本非常低所以性能非常低,客户端网络也不稳定。(例如一台自行车,一个水杯)
MQTT 面临的使用场景中,另外一个很重要的特点就是,服务端需要支撑海量的 IoT 设备同时在线。普通的消息队列通常都是10w以下的客户端接入就足够业务使用了。
另外,MQTT 它是不支持点对点通信的,一般的做法都是,每个客户端都创建一个以自己 ID 为名字的主题,然后客户端来订阅自己的专属主题,用于接收专门发给这个客户端的消息。这就意味着,在 MQTT 的集群中,主题的数量是和客户端的数量基本是同一个量级的。