Nacos配置中心使用,学习笔记二,解决nacos 配置中心刷新数据 不生效,Refresh keys changed: []
写在前面
在新版Spring Cloud中,没有使用到bootstrap.properties
,nacos的config是写在application.yml
里。
首先添加依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
编写配置文件:
spring:
cloud:
nacos:
serverAddr: 127.0.0.1:8848
discovery:
server-addr: 127.0.0.1:8848
config:
import:
- nacos:gulimall-coupon.properties?refresh=true
启动过程:
查看日志发现,Nacos Config
已经启动成功。
2023-08-14 16:27:46.503 INFO 26836 --- [ main] c.a.c.n.c.NacosConfigDataLoader : [Nacos Config] Load config[dataId=gulimall-coupon.properties, group=DEFAULT_GROUP] success
在Nacos中编辑配置发布:
但在控制台中出现了
Refresh keys changed: []
的错误,看了一下的确没有更新配置。于是检查是否注入@RefreshScope
,注:使用 @RefreshScope 注解的组件在配置发生变化时,可以通过发送 POST 请求到 /actuator/refresh 端点来触发配置的刷新。刷新操作会重新加载被 @RefreshScope 注解标记的组件,并应用最新的配置值。
,结果发现没有这个问题。但多次修改仍然使用的是微服务自带配置文件的值。
解决:
那么问题就应该出现在了优先级上,在application.yml
配置里添加加一个preference: remote
的属性。
cloud:
nacos:
serverAddr: 127.0.0.1:8848
config:
preference: remote
discovery:
server-addr: 127.0.0.1:8848
Nacos配置中心的作用:
- 集中管理配置:Nacos配置中心允许开发团队将应用程序的配置集中存储在一个地方,而不是分散在各个应用程序中。这样可以方便地管理和维护配置信息,减少配置的冗余和重复。
- 动态配置更新:Nacos配置中心支持实时更新配置,当配置发生变化时,它可以及时通知应用程序并自动更新配置。这样可以避免重启应用程序或重新部署的麻烦,提高配置更新的效率和灵活性。
- 配置版本管理:Nacos配置中心支持配置的版本管理,可以方便地查看和恢复历史配置。这对于排查问题、回滚配置等操作非常有用。
- 配置共享和复用:Nacos配置中心提供了命名空间和分组的概念,可以将配置进行分类和隔离。这样不同的应用程序可以共享相同的配置,提高配置的复用性和管理效率。
- 配置权限和安全性:Nacos配置中心支持配置的权限控制,可以确保只有授权的用户或应用程序能够访问和修改配置。这有助于保护敏感的配置信息。
总而言之,Nacos配置中心可以帮助开发团队更好地管理和分发应用程序的配置,提高配置的可维护性、灵活性和安全性。
参考链接:nacos 配置中心刷新数据 不生效 #1960 key1012 opened this issue Oct 23, 2019 · 35 comments