前言:
RabbitMQ消费者一般情况下,如果消费失败出现异常,那么消费端默认是无限重试消费,这样就会带来非常不好的一个情况,就是陷入死循环,一直报错一直重试。所以我们需要对消费异常重试次数、重试间隔时间进行限制
一、限制消费异常重试次数、重试间隔时间
1、配置限制策略,如下:
- rabbitmq:
- host: xxx
- port: 5672
- username: guest
- password: guest
- virtual-host: /
- listener:
- simple:
- default-requeue-rejected: false
- acknowledge-mode: manual # 确认模式为手动确认-需要在代码中手动ACK
- retry:
- enabled: true # 开启消费者出现异常情况下,进行重试消费,默认false
- max-attempts: 5 # 最大重试次数,默认为3
- initial-interval: 3000 # 重试间隔时间,默认1000(单位毫秒)
其中 retry 节点及以下的属性就是重试策略
2、验证重试策略是否生效
这里使用一张 user 信息表作演示
【1】演示代码
- @RabbitListener(queues = {MqConstants.DIRECT_QUEUE_1})
- public void listenerDirectQueue1(Message message, Channel