學(xué)習(xí)完整課程請移步 互聯(lián)網(wǎng) Java 全棧工程師
死信隊列
DLQ(Deal Letter Queue),死信隊列。當(dāng)一個消息在隊列中變成死信之后,他能被重新發(fā)送到 DLQ 中,與 DLQ 綁定到隊列就是死信隊列。
什么情況下需要死信隊列
- 消息被拒絕
- 消息過期
- 隊列達(dá)到最大長度

生產(chǎn)者生產(chǎn)一條消息,存儲到普通隊列中;設(shè)置隊列的過期時間為 10 秒,在 10 秒內(nèi)沒有消費者消費消息,那么判定消息過期;此時如果設(shè)置了死信隊列,過期消息被丟給死信隊列交換機(jī),然后被存儲在死信隊列中。
延遲隊列
顧名思義就是延遲執(zhí)行消息,比如我們可以增加一個隊列并設(shè)置其超時時間為 10 秒并且不設(shè)置任何消費者,等到消息超時,我們可以將消息放入死信隊列,讓消費者監(jiān)聽這個死信隊列就達(dá)到了延遲隊列的效果。
重試隊列
重試的消息在延遲的某個時間點(業(yè)務(wù)可設(shè)置)后,再次投遞給消費者。而如果一直這樣重復(fù)消費都持續(xù)失敗到一定次數(shù),就會投遞到死信隊列,最后需要進(jìn)行人工干預(yù)。