SpringBoot:无需调用/actuator/refresh能否获取配置最新值?多实例如何处理?
Spring Cloud配置中心刷新相关疑问解答
问题1:每次更新application.properties后,必须调用http://localhost:8080/actuator/refresh才能获取最新配置值吗?
- 默认情况下是这样的。Spring Boot应用启动时会加载配置并缓存,不会主动监听配置文件的变更。只有调用
/actuator/refresh端点(前提是已引入spring-boot-starter-actuator依赖,且目标Bean标注了@RefreshScope注解),才会触发配置重新加载,让对应Bean拿到最新配置值。 - 也可以配置自动刷新机制,比如结合Spring Cloud Bus与消息队列(如RabbitMQ、Kafka),配置更新后无需手动调用刷新端点,就能自动触发配置刷新事件。
问题2:若应用存在多个实例,是否需要对每个实例都调用../actuator/refresh?
- 要是没配置Spring Cloud Bus这类消息总线组件,确实得逐个调用每个实例的
/actuator/refresh端点,才能让所有实例同步最新配置。 - 但引入Spring Cloud Bus后,只需要调用任意一个实例的
/actuator/bus-refresh端点,消息总线就会把刷新事件广播给所有关联实例,实现批量刷新,不用逐个操作。
内容的提问来源于stack exchange,提问作者无名小路
相关产品推荐
相关产品推荐

