nacos问题处理1——spring-cloud中多方案实现nacos动态刷新配置
nacos
Nacos是由阿里巴巴开源的服务治理中间件,集成了动态服务发现、配置管理和服务元数据管理功能,广泛应用于微服务架构中,简化服务治理过程。
项目地址:https://gitcode.com/gh_mirrors/na/nacos
免费下载资源
·
在微服务项目使用和运维中,Nacos作为配置中心使用率很高,很大程度上源于阿里巴巴背书且开源,后面有众多的社区支持讨论。
既然已经使用了Nacos,配置中心必然要能支持动态刷新,即就是修改了部分外部数据参数,后台可以动态获取相应的配置信息,而无需通过重启服务来实现。
这样做不仅仅是减轻了大量重复性工作,最重要的是可以在生产环境避免不可控的问题出现。
1.先说下基础项目的运行环境
java:>=1.8
spring-boot:2.7.13
spring-cloud:2021.0.8
spring-cloud-alibaba:2021.0.5.0
nacos:>=2.1.0
2.首先要修改bootstrap.yml共享配置,可以自定义多个。
# Spring
spring:
application:
# 应用名称
name: app-test
profiles:
# 环境配置
active: dev
cloud:
nacos:
discovery:
# 服务注册地址,支持ip和域名
server-addr: 10.13.112.75:8848
config:
# 配置中心地址,支持ip和域名
server-addr: nacos210:8848
# 配置文件格式
file-extension: yml
#### 支持共享多个配置
#### 配合@RefreshScope注解,可以解决nacos动态刷新配置问题
shared-configs[0]:
data-id: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
refresh: true
shared-configs[1]:
data-id: service-custom-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
refresh: true
3.然后在spring管理的类上加上注解@RefreshScope
4.最后验证测试
- 动态修改配置
- 后台动态刷新获取配置
5.其他解决方案:
- 可以使用注解@NacosValue,类似@Value,配置参看步骤2
此方案未验证成功,欢迎各位大佬指导。
@NacosValue(value = "${report.weekPlan.currentWeek}",autoRefreshed = true)
private Integer currentWeek;
- 利用配置文件上下文ConfigurableApplicationContext类
此方案为终极解决方法,基本都能实现动态取值。
@Autowired
private ConfigurableApplicationContext configurableApplicationContext;
//仅展示部分关键代码
String property = configurableApplicationContext.getEnvironment().getProperty("report.weekPlan.currentWeek");
GitHub 加速计划 / na / nacos
123
24
下载
Nacos是由阿里巴巴开源的服务治理中间件,集成了动态服务发现、配置管理和服务元数据管理功能,广泛应用于微服务架构中,简化服务治理过程。
最近提交(Master分支:4 个月前 )
762303b9
* [ISSUE #12970] Fix NamingMetadataManager.removeInstanceMetadata() error
fix #12970
* Update NamingMetadataManagerTest.java 3 天前
05561813
* fix type search on mysql model
* 灰度模型迁移程序并发&迁移不落历史表
* Config migrate executor times
* 1.Config migrate executor times
2. history comparation optimize
* 1.Config migrate executor times
2. history comparation optimize
* checkstyle 3 天前
更多推荐
已为社区贡献3条内容
所有评论(0)