【发布时间】:2014-09-30 03:54:33
【问题描述】:
我正在尝试设置一个工作流程,其中生产者向代理发送消息,代理将消息发送给消费者,消费者 ACK 返回到同一队列/通道上,并且被拾取为“由制片人确认。
我的信息基于此:http://www.rabbitmq.com/blog/2011/02/10/introducing-publisher-confirms/
根据该文档,它应该等待消费者发送确认或确认。但是,在我的测试中,它会立即返回确认(一旦到达代理(RabbitMQ))。
文件说这将在三种情况下发生:
在 basic.return 之后立即确认不可路由的强制消息或即时消息;
否则,临时消息在入队时即被确认;而且,
持久消息在持久化到磁盘或在每个队列上被使用时得到确认。
在调用 basicPublish 时,我确保将队列设置为持久,并将传递模式设置为 2(持久)。所以这是一个持久的信息。我还确保它已成功路由到队列。
这是预期的行为吗?还是做错了什么让它立即 ACK 而不是等待消费者的 ack?
【问题讨论】:
标签: rabbitmq