生产环境出现消息丢失,请问怎么查看丢了什么消息 ?
可以在emqx的日志中看看,对应时间段有没有异常的日志。
全局搜索了下代码,目前只有三种丢弃的情况
- no_subscriber ,没有日志,只有计数
- packet_identifier_inuse, warning日志
- receive_maximum_exceeded, wanring 日志
他们表示:
- 前者
no_subscriber
则是 EMQX 在分发消息时,发现没有任何人订阅该主题,所以丢弃的该消息,这种情况还挺常见的。 - 后两者的消息丢弃,都是在 EMQX 处理来自客户端的 QoS2 消息非法,或者超过限制的出现了2而丢弃的。
应该还有一种情况,超过消息队列的容量,最先进队列的消息也要被丢弃吧
1 个赞