lke86
1
有MQTT客户端连接池的管理方法吗?C#或Java都行
Shawn
2
你说的是连接池还是线程池?
如果说是收到消息之后如何提交给线程池来处理,你可以 ChatGPT 一下,我这儿有一个示例:
如果是连接池。MQTT 每一个连接都是需要唯一的 ClientID 的,除非共享订阅,否则创建多个连接一般好处不大。
如果是为了共享订阅,启动多个单连接的客户端实例比在一个实例里创建多个 MQTT 连接好得多。
lke86
3
EMQX 作为服务器。应用程序想向上万的主题发消息,一个客户端连接的吞吐量不够所以想能不能启动多个客户端向这一万个主题发消息。
Shawn
4
那你真的需要多个客户端发送这些消息,这样可以充分利用服务端的多核心资源,均衡掉原来单客户端的负载实现并行处理。
如果你有一万个主题,你可以建立服务端 CPU 核心数的 MQTT 连接,每个负责固定的某些主题。如果使用了鉴权(ACL) 功能,需要扩大 ACL 缓存的条目数。即如果单个客户端最多会发送 1000 个主题,那么ACL 缓存的条目数需要扩大到 1000.