AMQP连接器MULE ESB中MULE_自动和手动的区别

AMQP连接器MULE ESB中MULE_自动和手动的区别,mule,amqp,mule-studio,mule-el,mule-component,Mule,Amqp,Mule Studio,Mule El,Mule Component,是否有人知道AMQP连接器(MULE)在ACK模式下的MULE_AUTO和MANUAL之间的确切区别。因为我观察到了这一点 如果确认模式:AMQP_AUTO->一旦收到消息,它将被自动删除 若确认模式:MULE_AUTO->即使在成功拾取和传递消息后,消息仍存在于队列中 若确认模式:手动->即使在成功拾取和传递消息后,消息仍然存在于队列中。(与MULE_AUTO相同) 在MULE_AUTO和MANUAL中,如果我们要从外部删除消息,这两种情况都会发生。确切的区别是什么。我错过了什么吗 <

是否有人知道AMQP连接器(MULE)在ACK模式下的
MULE_AUTO
MANUAL
之间的确切区别。因为我观察到了这一点

  • 如果确认模式:AMQP_AUTO->一旦收到消息,它将被自动删除
  • 若确认模式:MULE_AUTO->即使在成功拾取和传递消息后,消息仍存在于队列中
  • 若确认模式:手动->即使在成功拾取和传递消息后,消息仍然存在于队列中。(与MULE_AUTO相同)
在MULE_AUTO和MANUAL中,如果我们要从外部删除消息,这两种情况都会发生。确切的区别是什么。我错过了什么吗

<amqp:connector name="AMQP_Test" validateConnections="true"
      host="***"  ackMode="MULE_AUTO"
      username="123" password="123!" />

您能告诉我我丢失的确切位置吗?

使用
手动
,您必须手动确认(或拒绝)消息,如下所述:

本质上,这是通过以下方式实现的:

<amqp:acknowledge-message />

以及:



使用
MULE\u AUTO
,当流程处理完成时,MULE应自动确认消息。如果它不起作用,那一定是个bug。

谢谢您的回复。我已经编辑了我的问题并添加了完整的配置。这就是我测试一个简单场景的方式。请您浏览一下我的编辑并给我建议。根据我的实际情况,在我的消费服务给出“200”回复之前,不应删除此消息。在这里,即使在获得成功响应消息后,队列中仍然存在该消息。我已选择使用“手动”。它按照您的建议执行所需的场景。但不知道为什么MULE_AUTO没有。感谢您的回复。您正在使用事务!你在问题的原始版本中没有提到这一点:(这改变了一切:
MULE\u AUTO
在使用事务时被禁用,请参阅:我不知道为什么,但由于某些原因,事务没有在您的流中提交。可能是错误?您在日志中看到任何与事务相关的条目吗?在
DEBUG
级别运行日志记录?
<amqp:acknowledge-message />
<amqp:reject-message requeue="true" />