RabbitMQ利用死信隊列實現延時隊列

RabbitMQ本身沒有直接支持延遲隊列的功能,但是可以通過配置死信隊列和設置消息或隊列的過期時間來模擬出延遲隊列的功能。

RabbitMQ安裝見博文:RabbitMQ安裝及簡單使用

 

1、rabbitmq控制檯配置

在rabbitmq 控制檯,新建exchange:delay.topic

Type:topic

 

新建死信(延遲)隊列:delay.queue

配置Arguments如下:

x-message-ttl: 50000 Number 延遲5s
x-dead-letter-exchange: delay.topic String 死信exchange,延遲設定時間後,會將消息推送到該exchange
x-dead-letter-routing-key: routingkey.delay String

死信routingkey

 

再新建隊列 test.queue,

隊列建好後,進入該隊列,綁定如下exchange:

From exchange: delay.topic

Routing key: routingkey.delay

(該exchange與Routing key與設置死信隊列x-dead-letter-exchange、x-dead-letter-routing-key 保持一致)

 

2、代碼中使用

rabbitmq中配置好延遲隊列delay.queue後,代碼中將消息推送至delay.queue,5s後,消息會推送至

綁定如下exchange的隊列

exchange: delay.topic   Routing key: routingkey.delay

即test.queue, 監聽test.queue,5s後即可獲取到消息。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章