错误报告
环境
- EMQX 版本:5.0.3
- 操作系统版本:Linux
重现此问题的步骤
- 硬件设备使用的4G模块的MQTT,在平台上看协议是MQTT v3.1协议
- 服务器部署,以及后端程序注册的使用协议为MQTT v3.1.1协议
- 目前使用的消息质量为QoS 0,硬件设备目前只能设置为0。
4、调试过程中发现,消息丢失的概率非常高,从主题监控中发现,流入6139条,流出2393条,消息丢弃3152条。消息丢失的非常多。目前不确定什么原因。不知道是否是因为这个协议不一致的问题。
跟协议版本没有关系,你可以查看一下 EMQX 的统计指标,看下主要都是由于什么原因丢弃的。
正常操作业务流程,有时候是成功,有时候是失败,失败就是服务器端没有收到消息。
从统计指标里面可以看到消息丢弃都是因为没有订阅者,你可以先看下你的订阅客户端是不是经常离线?
确定过了,设备是一直在线的,在订阅列表中也是一直在线,可能上一分钟还能正常收发,下一秒就有可能丢失,在下一秒可能又正常了
看到你主题监控里面的数据了,你追踪一下 dindo 这个主题吧,然后我们看下日志
我看到里面你的客户端有多次主动取消订阅的操作,你可以再确认一下客户端的行为。