如何在Cloud Foundry上设置Spring Boot RabbitMQ Heartbeat?

时间:2018-04-27 02:49:18

标签: cloudfoundry spring-amqp spring-cloud-connectors

我在Cloud Foundry上使用Spring Boot(1.5.12)和spring-boot-starter-amqp运行应用程序

根据先前对set heartbeat property on rabbitmq autoconfig connectionfactory bean的SO回答,我尝试按如下方式设置心跳属性。

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

但是,通过Rabbit Management Console查看时,连接仍然表示心跳的默认值为60秒。

我使用执行器端点进行了堆转储,并查看了似乎由spring-cloud-spring-service-connector自动重新配置的connectionFactory。它似乎有默认的60秒,并忽略了请求的30秒。

是否应该使用另一个环境属性来配置心跳值?如果没有,我怀疑我们将连接CachingConnectionFactory并在那里修改它。

1 个答案:

答案 0 :(得分:2)

如果连接是由Spring Cloud Connectors创建的(即@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); } } ),那么您将需要使用Java配置自定义连接。

spanishdays[ui]

Connectors docs中提供了更多详细信息。