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

 

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