Nacos配置中心
通过Nacos Server和spring-cloud-starter-alibaba-nacos-config实现配置的动态变更
1. 接入Nacos Config
- 新建模块cloudalibaba-config-nacos-client3377
- 添加bootstrap.yml和application.yml文件:
yml
# nacos配置
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
# nacos端配置文件DataId的命名规则是:
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# 本案例的DataID是:nacos-config-client-dev.yaml
yml
server:
port: 3377
spring:
profiles:
active: dev # 表示开发环境
#active: prod # 表示生产环境
#active: test # 表示测试环境
- 添加NacosConfigClientController和NacosConfigClient3377:
java
@RestController
@RefreshScope //在控制器类加入@RefreshScope注解使当前类下的配置支持Nacos的动态刷新功能。
public class NacosConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping("/config/info")
public String getConfigInfo() {
return configInfo;
}
}
java
@EnableDiscoveryClient
@SpringBootApplication
public class NacosConfigClient3377 {
public static void main(String[] args)
{
SpringApplication.run(NacosConfigClient3377.class,args);
}
}
2. 在Nacos中添加配置信息
2.1 DataId设置原则
总结下来:
${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
2.2 在Nacos页面配置
点击创建设置: 填写相关配置:
启动cloudalibaba-config-nacos-client3377,进行测试:
3. Nacos配置刷新
测试自动刷新,修改Nacos上面的配置: 再次请求接口测试,发现配置已经生效:
Nacos会记录配置文件的历史版本默认保密30天,此外还有一键回滚功能,回滚操作将会触发配置更新
4. Nacos多项目配置管理
4.1 Nacos配置设计理念
Nacos一共分为3个层次:Namespace,Group,DataId。
4.2 DataId配置方案
使用默认空间public+默认分组DEFAULT GROUP+新建DatalD来配置项目。
- 修改application.yml文件:
- 在Nacos上面添加新的配置nacos-config-client-test.yaml
- 重启cloudalibaba-config-nacos-client3377,请求接口测试
4.3 Group配置方案
使用默认空间public+新建PROD_GROUP+新建DatalD来配置项目。
- 修改bootstrap.yml文件:
- 在Nacos上面添加新的配置nacos-config-client-prod.yaml
- 修改application.yml文件:
yml
server:
port: 3377
spring:
profiles:
active: prod # 表示生产环境
- 重启cloudalibaba-config-nacos-client3377,请求接口测试
4.4 Namespace配置方案
使用Prod_Namespace+PROD GROUP+DatalD来配置项目。
- 添加Namespace:
- 添加Namespace为Prod_Namespace:
- 在配置管理选择dav_center, 添加配置:
- 配置DataID:
- 修改bootstrap.yml
yml
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
group: PROD_GROUP
namespace: Prod_Namespace
- 重启cloudalibaba-config-nacos-client3377,请求接口测试