SpringCloud Stream 整合 RabbitMQ-DLQ隊列(2)

前幾篇介紹了SpringCloud Stream整合RabbitMQ、消費失敗後重試maxAttempts屬性、死信隊列(DLQ隊列)

本篇爲了方便消息放入死信隊列後排查問題,將異常信息顯示在messages列表,將使用republishToDlq

一、屬性-republishToDlq

根據SpringCloud官方文檔上,RabbitMQ消費者相關屬性部分可以找到republishToDlq:
在這裏插入圖片描述
可以看到,默認是false,如果設置爲true,將會把消息的頭信息(包括異常消息和stack trace)一起加入到dlq隊列中
接下來實際試驗一下:

一、項目

本次就接着上次的項目繼續使用,項目完整代碼:https://github.com/zrk333/mq-service

二、修改消費者

1、添加配置

spring.cloud.stream.rabbit.bindings.message-center-input.consumer.republishToDlq=true

2、驗證

保留消費方法繼續拋異常,重啓消費者,並調用生產者發送消息,看dlq隊列messages信息:
在這裏插入圖片描述
可以看到新加入的包含了異常等信息,對排查問題解決bug有很大幫助。

三、補充

dlqTtl屬性是設置死信隊列消息存放時間,默認沒有限制,如果設置,可能發生消息丟失

spring.cloud.stream.rabbit.bindings.message-center-input.consumer.dlqTtl=86400000
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章