RabbitMQ的延遲隊列

一:介紹

延遲隊列中存放的是延遲消息,所謂的“延遲消息”就是指當消息發送後,並不能被消費者立即消費,而是等待特定時間後,消費者才能拿到這個消息進行消費。

二:原理

RabbitMQ並沒有直接提供對應的延遲隊列,而是通過DLX(死信交換器)和TTL(消息過期時間)來達到延遲隊列的目的。

假如需要一個延遲1min的延遲隊列,則可以將一個隊列的過期時間設置爲1min,並給該隊列設置DLX(死信交換器),給DLX設置死信隊列;此時讓消費者去訂閱這個死信隊列,而不是去訂閱那個過期時間爲1min的隊列;這樣一來生產者將生產的消息發送到過期時間爲1min的隊列,達到過期時間1min後消息變成死信,並被髮送到死信隊列中;由於消費者訂閱了這個死信隊列,則消費者在等待1min後從死信對列中拿到了這個消息,並進行消費。

三:示意圖

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