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 orspring.rabbitmq.template.receive-timeout=500 or
spring.rabbitmq.template.reply-timeout=500 or
spring.rabbitmq.requested-heartbeat=1
自以来没有帮助,retry.multiplier=5
因此无论如何都将花费大量时间。
如果我们不考虑重试策略是否良好,是否有办法为运行状况检查终结点禁用RabbitTemplate重试,或者至少给它一些超时?
回答:
您可以覆盖默认的运行状况指示器Bean以使用未启用重试的模板…
@Configurationpublic class MyRabbitHealthIndicatorOverride
extends CompositeHealthIndicatorConfiguration<RabbitHealthIndicator, RabbitTemplate> {
@Bean
public HealthIndicator rabbitHealthIndicator(ConnectionFactory connectionFactory) {
return createHealthIndicator(new RabbitTemplate(connectionFactory));
}
}
以上是 SpringBoot禁用RabbitTemplate重试策略以进行兔子健康检查 的全部内容, 来源链接: utcz.com/qa/435367.html