面試中問你死信、延遲、重試隊列該如何回答?

死信隊列

DLQ(Deal Letter Queue),死信隊列。當一個消息在隊列中變成死信之後,他能被重新發送到 DLQ 中,與 DLQ 綁定到隊列就是死信隊列。

什麼情況下需要死信隊列

  • 消息被拒絕
  • 消息過期
  • 隊列達到最大長度
面試中問你死信、延遲、重試隊列該如何回答?

生產者生產一條消息,存儲到普通隊列中;設置隊列的過期時間為 10 秒,在 10 秒內沒有消費者消費消息,那麼判定消息過期;此時如果設置了死信隊列,過期消息被丟給死信隊列交換機,然後被存儲在死信隊列中。

延遲隊列

顧名思義就是延遲執行消息,比如我們可以增加一個隊列並設置其超時時間為 10 秒並且不設置任何消費者,等到消息超時,我們可以將消息放入死信隊列,讓消費者監聽這個死信隊列就達到了延遲隊列的效果。

重試隊列

重試的消息在延遲的某個時間點(業務可設置)後,再次投遞給消費者。而如果一直這樣重複消費都持續失敗到一定次數,就會投遞到死信隊列,最後需要進行人工干預。


分享到:


相關文章: