业务层比如spingboot同时跟几千个MQTT客户端通讯有什么最佳实践吗?

目前考虑用EMQX作为物联网设备的上报接收端,每秒同时在线的设备在1000-3000个。设备在线时会上报自己的属性,这个通过webhook转发到 业务端的api接口,这块可以通过负载均衡来做消化。不过这些设备还需要业务端下发一些控制指令,这块实现很迷茫,目前通过启动一个单MQTT客户端 连接EMQX 向不同设备发送消息,但是很慢 1秒可能就发20-50条左右。所以请教各位这样的业务有什么最佳实践吗?

启动 N 个 client 发送这些指令, N = EMQX 节点的 CPU 核心数目。每一个 client 负责固定的一片设备。

这些客户端 ACL 缓存数目需要调大,默认的 32 不够,每个 client 需要发送多少个主题,就调整为多少。