RabbitMQ立即确认(可能确认混淆)
我正在尝试设置一个工作流,其中生产者向代理发送消息,代理向消费者发送消息,消费者确认返回到同一队列/通道上,生产者将其作为“确认”接收 我的信息来源于: 根据该文档,它应该等待消费者发送ack或nack。但是,在我的测试中,它会立即返回ack(只要它到达代理(RabbitMQ)) 文件说,这将在三种情况下发生:RabbitMQ立即确认(可能确认混淆),rabbitmq,Rabbitmq,我正在尝试设置一个工作流,其中生产者向代理发送消息,代理向消费者发送消息,消费者确认返回到同一队列/通道上,生产者将其作为“确认”接收 我的信息来源于: 根据该文档,它应该等待消费者发送ack或nack。但是,在我的测试中,它会立即返回ack(只要它到达代理(RabbitMQ)) 文件说,这将在三种情况下发生: 在basic.return之后立即确认不可路由的强制或即时消息 否则,瞬时消息在排队时即被确认;以及 当持久消息被持久化到磁盘或在每个队列上使用时,将确认持久消息 在调用basicP
- 在basic.return之后立即确认不可路由的强制或即时消息
- 否则,瞬时消息在排队时即被确认;以及
- 当持久消息被持久化到磁盘或在每个队列上使用时,将确认持久消息
这是预期的行为吗?或者我做了一些错误的事情,使其立即确认,而不是等待消费者的确认?Publisher确认与消费者确认消息的时间无关 当消息被持久化时,代理将发送“发布者确认” 发布者了解使用者是否收到消息的唯一方法是实现某种RPC:
我想知道为什么您需要知道消费者是否收到了消息,因为消息通常是异步的,所以通过等待消费者的接收,您就可以在同步解决方案中打开您的体系结构了我需要知道消息何时完成处理。我只是使用了一个单独的回复队列。它不是一个阻塞rpc样式,所以我同意。