1.问题现象
provider明明发送了消息,但consumer测却没有收到消息。rocketmq没有任何异常,没有重启。
2.问题分析
rmq conumeMessage方法接收的是一个list对象,也就是说可能会一次消费多条消息,然而查看代码,发现处理了第一条消息后就返回sucess了。而且我们设置了consumer的batchmaxsize。
问题原因终于找到了,估计某位同学太粗心了,代码评审质量也不高。
3.开发环境验证
首先模拟消息积压,先启动provider,发送消息,然后再启动consumer,问题重现,一次消费了多条,但是仅处理了第一条就返回消费成功了,最后丢了很多消息。