0

我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重試或至少給它一些超時?

回答

1

您可以覆蓋默認的健康指標豆使用未啓用重試的模板......

@Configuration 
public class MyRabbitHealthIndicatorOverride 
     extends CompositeHealthIndicatorConfiguration<RabbitHealthIndicator, RabbitTemplate> { 

    @Bean 
    public HealthIndicator rabbitHealthIndicator(ConnectionFactory connectionFactory) { 
     return createHealthIndicator(new RabbitTemplate(connectionFactory)); 
    } 

}