搭建的RocketMQ集群,点击topic状态的时候,有时候报这个错误,有时候正常弹出状态。而且在系统中消费消息有时候能成功有时候成功不了,感觉是生产发送都失败了。这是咋回事有人遇到吗?
搭建的双主双从同步
以下为热心网友提供的参考意见
这个问题可能由多种原因导致。首先,RocketMQ消息消费失败的场景有以下几种:
- 消费者应用程序抛出异常。当消费者应用程序在处理消息时发生异常,消息将被认为是未消费,RocketMQ会尝试重新发送该消息,直到消费者成功处理为止。
- 消费者应用程序超时。
- 更新本地保存的消息偏移量时,会从消息列表中发送回Broker失败的消息先删除掉。只要有一条消息消费失败,这批消息都会进行重试,因此消费端做好幂等是必要的。
- 对于普通的消息,当消费者消费消息失败后,可以在消息监听器接口的实现中设置返回状态达到消息重试的结果。
- Apache RocketMQ的消费重试主要解决的是业务处理逻辑失败导致的消费完整性问题,是一种为业务兜底的策略,不应该被用做业务流程控制。建议以下消费失败场景使用重试机制:业务处理失败,且失败原因跟当前的消息内容相关,比如该消息对应的事务状态还未获取到,预期一段时间后可执行成功。消费失败的原因不会导致连续性,即当前消息消费失败是一个小概率事件,不是常态化的失败,后面的消息大概率会消费成功。此时可以对当前消息进行重试,避免进程阻塞。
本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/12296.html