SpringBoot禁用RabbitTemplate重试策略以进行兔子健康检查

我的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重试,或者至少给它一些超时?

回答:

您可以覆盖默认的运行状况指示器Bean以使用未启用重试的模板…

@Configuration

public class MyRabbitHealthIndicatorOverride

extends CompositeHealthIndicatorConfiguration<RabbitHealthIndicator, RabbitTemplate> {

@Bean

public HealthIndicator rabbitHealthIndicator(ConnectionFactory connectionFactory) {

return createHealthIndicator(new RabbitTemplate(connectionFactory));

}

}

以上是 SpringBoot禁用RabbitTemplate重试策略以进行兔子健康检查 的全部内容, 来源链接: utcz.com/qa/435367.html

回到顶部