如何在 Cloud Foundry 上设置 Spring Boot RabbitMQ Heartbeat?
How to set Spring Boot RabbitMQ Heartbeat on Cloud Foundry?
我在 Cloud Foundry 上有一个应用程序 运行,带有 Spring Boot (1.5.12) 和 spring-boot-starter-amqp
根据之前对 的 SO 回答,我尝试如下设置心跳 属性。
cf set-env app spring.rabbitmq.requested-heartbeat 30
cf restage app
但是通过Rabbit管理控制台查看,连接还是提示心跳是默认的60s
我使用执行器端点进行了堆转储,并查看了似乎已由 spring-cloud-spring-service 自动重新配置的 connectionFactory
-连接器。它似乎有默认的 60 秒,而忽略了请求的 30 秒。
是否有另一个环境属性应该用于配置心跳值?如果没有,我怀疑我们会连线 CachingConnectionFactory
并在那里修改它。
如果连接是由 Spring 云连接器创建的(即 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);
}
}
Connectors docs 中提供了更多详细信息。
我在 Cloud Foundry 上有一个应用程序 运行,带有 Spring Boot (1.5.12) 和 spring-boot-starter-amqp
根据之前对
cf set-env app spring.rabbitmq.requested-heartbeat 30
cf restage app
但是通过Rabbit管理控制台查看,连接还是提示心跳是默认的60s
我使用执行器端点进行了堆转储,并查看了似乎已由 spring-cloud-spring-service 自动重新配置的 connectionFactory
-连接器。它似乎有默认的 60 秒,而忽略了请求的 30 秒。
是否有另一个环境属性应该用于配置心跳值?如果没有,我怀疑我们会连线 CachingConnectionFactory
并在那里修改它。
如果连接是由 Spring 云连接器创建的(即 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);
}
}
Connectors docs 中提供了更多详细信息。