1:何為死信隊列
死信隊列也是一個正常的隊列,可以被消費。
但是,死信隊列的消息來源於其他隊列的轉發。
2:如何觸發死信隊列
- 1:消息超時
- 2:隊列長度達到極限
- 3:消息被拒絕消費,並不再重進隊列,且reQueue = false
需要在消費者的 arguments 中配置死信隊列,配置為:
"x-dead-letter-exchange":"自定義的交換機名稱"
3:在Java中實例死信隊列
3.1:生產者代碼
3.2:消費者代碼
4:測試效果
4.1:打開RabbimtMQ UI 頁面,開啟消費者
可以看到新創建了個交換機:
點擊交換機:
每個交換機都有自己的隊列。
4.2:關閉消費者,開啟生產者,直到消息全部超時
在UI界面-隊列界面
等待十秒鍾之后:
可以看到消息全部從正常隊列轉發到死信隊列中了。
4.3:此時開啟消費者
可以看到消費者接收到了死信隊列的消息。
5:拓展
5.1:如何定義客戶端連接名稱
5.2:如何限制消費者並發量
從外部給定一個線程池,消費者執行任務從該線程池獲取線程。