rabbitmq confirm機制路由不到佇列無法觸發handleNack
以下是官網原話
https://www.rabbitmq.com/confirms.html#when-publishes-are-confirmed
When Will Published Messages Be Confirmed by the Broker?
For unroutable messages, the broker will issue a confirm once the exchange verifies a message won't route to any queue (returns an empty list of queues). If the message is also published as mandatory, the basic.return is sent to the client before basic.ack. The same is true for negative acknowledgements (basic.nack).
For routable messages, the basic.ack is sent when a message has been accepted by all the queues. For persistent messages routed to durable queues, this means persisting to disk. For mirrored queues, this means that all mirrors have accepted the message.
大意是說 訊息只要進入交換器 就會傳送 Ack 但是當訊息無法路由到佇列時 會在傳送basic.ack 之前 傳送一條basic.return 命令
所以 rabbitmq的confirm 模式 只是保證了訊息進入了rabbitmq 並且被處理,這個被處理 不一定保證進入佇列,還有可能被返回(設定了mandatory的時候)。只要交換器是存在的,在進入confirm模式後 就一定是返回Ack的 除非交換器不存在 才會返回Nack
我看 rabbitmq 實戰指南說的是 保證進入佇列 今天腦子一熱試了下 結果怎麼都是 ack 除非交換器不存在 一看官網,才知道到現在的版本 已經變成這樣了。
相關文章
- RabbitMQ訊息佇列(三):任務分發機制MQ佇列
- RabbitMQ六種佇列模式-路由模式MQ佇列模式路由
- 訊息佇列-一篇讀懂rabbitmq(生命週期,confirm模式,延遲佇列,叢集)佇列MQ模式
- RabbitMQ訊息佇列(五):Routing 訊息路由MQ佇列路由
- RabbitMQ訊息佇列(九):Publisher的訊息確認機制MQ佇列
- 【訊息佇列】RabbitMq-宣告佇列與交換機佇列MQ
- Springboot + rabbitMq佇列Spring BootMQ佇列
- RabbitMQ 訊息佇列之佇列模型MQ佇列模型
- Laravel RabbitMQ 工作佇列LaravelMQ佇列
- 延時佇列(RabbitMQ)佇列MQ
- [訊息佇列]RabbitMQ佇列MQ
- RabbitMQ訊息佇列MQ佇列
- 【訊息佇列】RabbitMq-交換機模型佇列MQ模型
- rabbitmq訊息佇列原理MQ佇列
- RabbitMQ-簡單佇列MQ佇列
- RabbitMQ:偽延時佇列MQ佇列
- MQ訊息佇列_RabbitMQMQ佇列
- lumen 8.0 使用 rabbitmq 佇列MQ佇列
- RabbitMQ 入門 - 工作佇列MQ佇列
- RabbitMQ 高階 - 死信佇列MQ佇列
- 訊息佇列之RabbitMQ佇列MQ
- netcore下RabbitMQ佇列、死信佇列、延時佇列及小應用NetCoreMQ佇列
- 模型的 save() 方法無法使用佇列?模型佇列
- rabbitMQ 延遲佇列外掛強制呼叫ReturnCallback裡returnedMessage方法MQ佇列
- SpringBoot:初探 RabbitMQ 訊息佇列Spring BootMQ佇列
- 《RabbitMQ》什麼是死信佇列MQ佇列
- RabbitMQ實戰《延遲佇列》MQ佇列
- RabbitMQ延時佇列的使用MQ佇列
- RabbitMQ 高可用之映象佇列MQ佇列
- RabbitMQ 佇列使用基礎教程MQ佇列
- RabbitMQ 實現延遲佇列MQ佇列
- RabbitMQ實現延遲佇列MQ佇列
- 在佇列中取不到 header佇列Header
- 如何使用 Laravel 的佇列機制?有哪些場景需要使用佇列 ?Laravel佇列
- RabbitMQ 訊息佇列之 Exchange TypesMQ佇列
- Spring Boot(十四)RabbitMQ延遲佇列Spring BootMQ佇列
- 處理線上RabbitMQ佇列阻塞MQ佇列
- 使用 RabbitMQ 實現延時佇列MQ佇列