由于项目组并没有对消息发送失败做任何补偿,导致丢失消息发送失败,故需要对这个问题进行深层次的探讨,并加以解决。

2、问题分析

首先我们根据关键字:TIMEOUT_CLEAN_QUEUE 去RocketMQ 中查询,去探究在什么时候会抛出如上错误。根据全文搜索如下图所示:
该方法是在 BrokerFastFailure 中定义的,通过名称即可以看成其设计目的:Broker端快速失败机制。
Broker 端快速失败其原理图如下: