来自 连接器文档
如果 Mule 流完成执行时出现错误,订阅者源会检查该错误是否是指示外部服务错误的 onErrorType 之一,并计算连续发生的次数,直到达到 errorThreshold。
因此,错误应该是连续的,才能将电路转换为“开路”状态。您的实现问题在于您有
on-error-continue
表示 REDELIVERY_EXHAUSTED
错误,这意味着订阅者会将轮询的执行视为成功而不是错误。因此它将停止电路进入开路状态并且错误计数器将重置
为了使其与
redelivery-policy
一起使用,您需要进行以下更改
on-error-continue
更改为 on-error-propogate
on-error-propogate
错误处理程序中添加 ACK,以从 MQ 中删除消息在流程末尾添加 ACK 以从 MQ 中删除消息REDELIVERY_EXHAUSTED
on-error-propogate
视为成功,并且电路应在连续 3 个错误后打开(即
REDELIVERY_EXHAUSTED
)