Mule 4 Anypoint mq 订阅者 - 断路器不工作

问题描述 投票:0回答:1
mule messaging mulesoft mule4 anypoint-mq
1个回答
0
投票

来自 连接器文档

如果 Mule 流完成执行时出现错误,订阅者源会检查该错误是否是指示外部服务错误的 onErrorType 之一,并计算连续发生的次数,直到达到 errorThreshold。

因此,错误应该是连续的,才能将电路转换为“开路”状态。您的实现问题在于您有

on-error-continue
表示
REDELIVERY_EXHAUSTED
错误,这意味着订阅者会将轮询的执行视为成功而不是错误。因此它将停止电路进入开路状态并且错误计数器将重置

为了使其与

redelivery-policy
一起使用,您需要进行以下更改

  1. on-error-continue
    更改为
    on-error-propogate
  2. 将订阅者配置为使用手动确认模式而不是自动
  3. on-error-propogate
    错误处理程序中添加 ACK,以从 MQ 中删除消息
    在流程末尾添加 ACK 以从 MQ 中删除消息
  4. 默认添加NACK
  5. REDELIVERY_EXHAUSTED
  6. 以保留下一次轮询的消息
    
    
  7. 这将使源不会将
on-error-propogate

视为成功,并且电路应在连续 3 个错误后打开(即

REDELIVERY_EXHAUSTED
    

© www.soinside.com 2019 - 2024. All rights reserved.