SpringBoot整合RabbitMQ重試機制及配置

 RabbitMQ自動補償機制觸發:(多用於調用第三方接口)
    1.當我們的消費者在處理我們的消息的時候,程序拋出異常情況下(默認無限次數重試)
    2.應該對我們的消息重試設置間隔重試時間,比如消費失敗最多隻能重試5次,間隔3秒(防止重複消費,冪等問題)
    
如果重試5次,也就是15秒內重試還是失敗情況下應該如何處理?
    1.默認情況下,重試多次還是失敗的話,會自動刪除該消息(消息可能會丟失)
     解決思路:
      A:如果重試多次還是失敗的情況下,最終存放到死信隊列.
      B:採用表日誌記錄,消費失敗錯誤的日誌記錄 後期人工自動對消息實現補償.

#配置virtual-host虛擬主機
spring.rabbitmq.virtual-host=/zhang_rabbit
#ip地址
spring.rabbitmq.host=127.0.0.1
#用戶名  密碼
spring.rabbitmq.username=zhang
spring.rabbitmq.password=zhang
#連接端口號
spring.rabbitmq.port=5672

##重試機制
#開啓消費者(程序出現異常的情況下會,捕獲異常重試將不生效)進行重試
spring.rabbitmq.listener.simple.retry.enabled=true
#最大重試次數
spring.rabbitmq.listener.simple.retry.max-attempts=5
#最大間隔時間
spring.rabbitmq.listener.simple.retry.max-interval=20000ms
#重試間隔時間 3秒
spring.rabbitmq.listener.simple.retry.initial-interval=3000ms
#乘子  重試間隔*乘子得出下次重試間隔  3s  6s  12s  24s  此處24s>20s  走20s
spring.rabbitmq.listener.simple.retry.multiplier=2
#重試次數超過上面的設置之後是否丟棄(false不丟棄時需要寫相應代碼將該消息加入死信隊列)
spring.rabbitmq.listener.simple.default-requeue-rejected=false

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章