SpringBoot禁用兔子健康检查的rabbitTemplate重试策略

时间:2017-02-21 08:40:31

标签: spring-boot spring-amqp spring-rabbit spring-boot-actuator spring-rabbitmq

我的SpringBoot配置包含针对rabbitTemplate重试的强大重试策略

spring:
  rabbitmq:
    template:
      retry:
        enabled: true
        initial-interval: 500
        max-attempts: 10
        multiplier: 5
        max-interval: 60000

此配置的问题是当调用运行状况端点并且RabbitMQ关闭时,确实长时间连接挂起。

添加

等属性
spring.rabbitmq.connection-timeout=500 or
spring.rabbitmq.template.receive-timeout=500 or
spring.rabbitmq.template.reply-timeout=500 or 
spring.rabbitmq.requested-heartbeat=1

没有帮助,因为retry.multiplier=5,所以无论如何都需要花费很多时间。

如果我们忽略重试策略是否良好,是否有办法禁用rabbitTemplate重试健康检查端点或至少给它一些超时?

1 个答案:

答案 0 :(得分:2)

您可以覆盖默认的运行状况指示器bean以使用模板而无需重试... @组态 公共类MyRabbitHealthIndicatorOverride         扩展CompositeHealthIndicatorConfiguration< RabbitHealthIndicator,RabbitTemplate> {     @豆     public HealthIndicator rabbitHealthIndicator(ConnectionFactory connectionFactory){         return createHealthIndicator(new RabbitTemplate(connectionFactory));     } }