错误报告
环境
- EMQX 版本:4.2.9
- 操作系统版本:centos7
客户端会订阅大量数据然后再进行转发出去,但是会出现数据丢失
转发的数据会出现丢失
可以看一下 EMQX 这边的统计指标,看有没有出现消息丢弃的情况
客户端是接收数据再转发,刚开始不会丢失,如果客户端出现了断开重连(设置了自动重连机制),接收没问题,转发就会出现丢失
那不是应该看客户端的处理逻辑吗?如果我没有理解错的话
消息qos是0,断开重连后是少量数据丢失,而且客户端也没报错也没异常信息
你说的转发,是客户端转发给其它接收者,还是 EMQX 转发给客户端?
如果是 EMQX 转发给客户端,断开重连的情况下丢失 QoS 0 消息是正常的,这是 QoS 0 消息的特性。
谢谢你的解答!但丢失的数据不是在断开重连节点时,是重连成功后,发送消息会有丢失。broker对消息发送端有什么限制吗?
可以完整地描述一下场景吗?我好像没有太理解具体的情况。
我的业务场景是:多个broker节点组成集群,多个客户端通过共享订阅的方式订阅数据,然后通过不通的topic根据业务需求再转发到其他服务上,其他服务也是共享订阅方式。现在就遇到问题是客户端的在持续运行一段时间后会出现丢失数据的情况。是java项目mqtt组件用的是paho.mqttv3 1.2.5版本,客户端发送也没报错也没异常情况出现。目前就不好排查原因
所以消息丢失发生在哪个环节还无法确认的话,可以先看下 EMQX 这边的统计指标,看看有没有消息丢弃的情况。
然后 4.2 的话已经超出了维护周期,建议升级到 4.4 的最新版本,共享订阅应该是有修复过一些 Bug 和优化过性能的。
谢谢,我再排查下客户端,希望是客户端的问题。