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六種佇列模式-路由模式MQ佇列模式路由
- 訊息佇列-一篇讀懂rabbitmq(生命週期,confirm模式,延遲佇列,叢集)佇列MQ模式
- RabbitMQ訊息佇列(五):Routing 訊息路由MQ佇列路由
- RabbitMQ訊息佇列(九):Publisher的訊息確認機制MQ佇列
- RabbitMQ 訊息佇列之佇列模型MQ佇列模型
- Laravel RabbitMQ 工作佇列LaravelMQ佇列
- RabbitMQ訊息佇列MQ佇列
- 【RabbitMQ】——佇列模式(2)MQ佇列模式
- 延時佇列(RabbitMQ)佇列MQ
- [訊息佇列]RabbitMQ佇列MQ
- MQ訊息佇列_RabbitMQMQ佇列
- RabbitMQ 高階 - 死信佇列MQ佇列
- RabbitMQ:偽延時佇列MQ佇列
- rabbitmq訊息佇列原理MQ佇列
- RabbitMQ-簡單佇列MQ佇列
- 訊息佇列之RabbitMQ佇列MQ
- lumen 8.0 使用 rabbitmq 佇列MQ佇列
- 訊息佇列之 RabbitMQ佇列MQ
- RabbitMQ 入門 - 工作佇列MQ佇列
- 佇列工廠之RabbitMQ佇列MQ
- RabbitMQ 訊息佇列 配置MQ佇列
- Springboot + rabbitMq佇列Spring BootMQ佇列
- 模型的 save() 方法無法使用佇列?模型佇列
- 處理線上RabbitMQ佇列阻塞MQ佇列
- RabbitMQ實戰《延遲佇列》MQ佇列
- 《RabbitMQ》什麼是死信佇列MQ佇列
- RabbitMQ實現延遲佇列MQ佇列
- RabbitMQ 實現延遲佇列MQ佇列
- RabbitMQ 高可用之映象佇列MQ佇列
- RabbitMQ延時佇列的使用MQ佇列
- RabbitMQ 佇列使用基礎教程MQ佇列
- netcore下RabbitMQ佇列、死信佇列、延時佇列及小應用NetCoreMQ佇列
- WebSocket的事件觸發機制Web事件
- Yii中事件觸發機制事件
- RabbitMQ訊息佇列系列教程(一)認識RabbitMQMQ佇列
- rabbitMQ 延遲佇列外掛強制呼叫ReturnCallback裡returnedMessage方法MQ佇列