使用的是emqx4.4.7,采用java的paho1.2.5进行连接,订阅5个topic并qos=0,所有topic每秒合计收到20条消息左右,如果我把5个topic创建5个MqttClient分别只订阅一个主题,那么消息会很均匀,设备推送过来的消息,马上能收到。当我把5个topic合并,我的消息需要等待12S,每12秒左右才能收到消息,每次100条,请问是为什么,应该怎么配置才能让消息实时送达。
你需要打开 emqx 的 debug 日志,看看消息的交互,12s 的延迟足够肉眼看清消息交互过程中的问题。
如果你发送了很多个消息,我猜可能跟 Inflight window 相关。为了验证这个问题,你把这个调大看看管不管用:
zones.conf:
zone.external.max_inflight = 32
如果管用那可能是订阅者回复 PUBACK 慢了,也就是消费没那么快,所以你可能需要共享订阅或者改方案,用 webhook 之类的方式替代订阅。
感谢,是你说的问题。修改了webhook方案,解决了。