nacos的热更新
用nacos做配置中心。
Q1:一定要@RefreshScope和@Value配合使用吗?
Q2:@FeignClient(url="${XX}"),只在interface上加@RefreshScope,XX修改了不能即时更新,如果在有@Value("${XX}")的class上加@RefreshScope,才起作用。
Q3:@ConfigurationProperties的配置类,在class上加@RefreshScope会即时更新吗?
Q4:修改配置后,含有该配置的服务,会打印出 Loading nacos data, dataId: 'XXX-dev.yml' ……Started application in 0.217 seconds (JVM running for 60511.743)。这个started application有啥意思。。。修改数据源应该不能热更新吧,还是要重启相应服务吧?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
@RefreshScope和@ConfigurationProperties(prefix = "XX") 也可以生效。
我想把配置文件的变量都放到一个class里,变量都定义为public static,@PostConstruct初始赋值,热更新怎么处理?
我测试了一下,用2个Controller,一个有@RefreshScope,一个没有,都引用@Value得到某个变量,结果有@RefreshScope的热更新了,另一个还是启动时候的值。
我记得是@NacosValue
另外,从源码上来看,是通过反射执行的热更新
我用@NacosValue,不会赋值
回复
哥们自己看源码+教程吧,好好测测,我们生产都用上了。NacosValue
回复
@心心念叨的人 : 放假我研究一下,现在不能用上@NacosValue
回复
我这边是这样做的 springboot 启动类上加 @NacosPropertySource(dataId = WitParkingNacosDataId.BASEPLATFORM, autoRefreshed = true) 然后在原来要注入Value的地方改成NacosValue
回复
@心心念叨的人 : 这种我试了的,可是没有@NacosPropertySource这个注解,大概是版本不对,我的版本是1.1.0
建议看一下
com.alibaba.nacos.spring.context.annotation.config.NacosValueAnnotationBeanPostProcessor 类,热更新是从NacosValue注解判断的,用反射做处理。 你的注解方式我不清楚在哪实现的