消息隊列 - 死信、延遲、重試隊列

學(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ù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容