Как установить Spring Boot RabbitMQ Heartbeat на Cloud Foundry? - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть приложение, работающее в Cloud Foundry с Spring Boot (1.5.12) и spring-boot-starter-amqp

Основываясь на предыдущем ответе SO на установить свойство heartbeat для bean-компонента автоматической настройки конфигурации rabbitmq , я попытался установить свойство heartbeat следующим образом.

cf set-env app spring.rabbitmq.requested-heartbeat 30
cf restage app

Однако при просмотре через консоль управления Rabbit соединение по-прежнему указывает, что частота сердечных сокращений по умолчанию составляет 60 с.

Я взял дамп кучи, используя конечные точки привода, и взглянул на connectionFactory, который, казалось, был автоматически перенастроен с помощью соединителя-пружины-облака-пружины-обслуживания. Кажется, по умолчанию установлено значение 60 секунд, и игнорируется запрошенная 30 секунд.

Есть ли другое свойство среды, которое следует использовать для настройки значения пульса? Если нет, я подозреваю, что мы подключим CachingConnectionFactory и изменим его там.

1 Ответ

0 голосов
/ 27 апреля 2018

Если соединение создается Spring Cloud Connectors (т.е. spring-cloud-spring-service-connector), вам необходимо настроить соединение с помощью конфигурации Java.

@Configuration    
class CloudConfig extends AbstractCloudConfig {
    @Bean 
    public RabbitConnectionFactory rabbitFactory() {
        Map<String, Object> properties = new HashMap<String, Object>();
        properties.put("requestedHeartbeat", 30);

        RabbitConnectionFactoryConfig rabbitConfig = new 
            RabbitConnectionFactoryConfig(properties);
        return connectionFactory().rabbitConnectionFactory(rabbitConfig);
    }
}

Более подробная информация доступна в документах по разъемам .

...