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)); 
    } 

}