我在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
并在那里修改它。
答案 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中提供了更多详细信息。