一、Nacos配置客户端搭建
1、在父项目(test-springcloud)中,新建配置客户端模块(springcloud-config-nacos-client8901)
2、在pom中,依赖Nacos配置依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>cloud-alibaba-parent</artifactId> <groupId>com.sdkj</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>cloud-config-nacos-client8901</artifactId> <dependencies> <!--nacos config--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> </project>
3、在启动引导配置文件bootstrap.yml中,添加如下配置:
1 spring: 2 application: 3 name: nacos-config-client 4 cloud: 5 nacos: 6 discovery: 7 server-addr: localhost:8848 8 config: 9 server-addr: localhost:8848 10 # 配置内容文件的数据格式,默认值:properties 11 file-extension: yaml
4、在配置文件application.yml中,添加如下配置:
1 # 端口 2 server: 3 port: 8901 4 5 spring: 6 profiles: 7 # 表示开发环境 8 active: dev
5、编写启动类
1 @EnableDiscoveryClient 2 @SpringBootApplication 3 public class NacosConfigClientMain8901 { 4 public static void main(String[] args) { 5 SpringApplication.run(NacosConfigClientMain8901.class, args); 6 } 7 }
6、编写一个controller,如下:
1 @RestController 2 // 原生注解,支持Nacos动态刷新功能 3 @RefreshScope 4 public class ConfigClientController { 5 6 @Value("${config.info}") 7 private String configInfo; 8 9 @GetMapping("/config/info") 10 public String getConfigInfo(){ 11 return configInfo; 12 } 13 }
到此客户端搭建完整
二、Nacos中添加配置文件
1、在Nacos的Web界面中——〉配置列表——〉“+”号,添加配置,如下:
2、点击发布按钮,即完成配置文件添加
3、测试
1)启动Nacos服务、Nacos配置客户端项目
2)访问地址:http://localhost:8901/config/info,正常访问
3)在Nacos的Web界面中,修改配置文件内容,将version改为 2
访问地址:http://localhost:8901/config/info,version动态修改成2了
4)查看控制台输出内容
由于代码中增加了@RefreshScope,刷新原生注解,此注解也支持Nacos动态刷新配置功能,所以当配置文件修改或,能动态刷新配置
三、Nacos配置文件
DataId
在nacos中,新增配置时,需要增加dataId,在 Nacos Spring Cloud 中,dataId 的完整格式如下:
1 ${prefix}-${spring.profile.active}.${file-extension}
1)prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
2)spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
3)file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
Nacos加载配置(Namespace + GroupId + DataId)
nacos客户端,在加载nacos服务上的配置时,先去找nacos服务上查找对应的Namespace(命名空间)-〉查找对应的Group(组)-〉查询对应的DataId(配置集 ID)
Namespace(命名空间):用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等,保留空间为public。
Group(组):Nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如 Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。当您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和 MQ_topic 配置。
DataId(配置集 ID):Nacos 中的某个配置集的 ID。配置集 ID 是组织划分配置的维度之一。Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。Data ID 通常采用类 Java 包(如 com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。此命名规则非强制。
Namespace、Group和DataId的关系如下:
DataId(配置集 ID)示例
1、在Nacos中分别新增2个配置文件,如下:
nacos-config-client-test.yaml,内容:
1 config: 2 info: nacos config center, nacos-config-client-test.yaml, version = 1
2、修改配置客户端模块内容,application.yml配置,如下:
1 spring: 2 profiles: 3 # 表示开发环境 4 active: test
3、重新启动项目,访问地址:http://localhost:8901/config/info,获取到的是nacos-config-client-test.yaml文件的内容
Group(组)示例
1、在Nacos的Web界面中——〉配置列表——〉“+”号,添加配置,在新的组(BJ_GROUP)中,如下:
配置列表
2、修改配置客户端模块内容,
application.yml,配置如下:
1 # 端口 2 server: 3 port: 8901 4 5 spring: 6 profiles: 7 # 表示开发环境 8 active: dev
bootstrap.yml,增加group,配置如下:
1 spring: 2 application: 3 name: nacos-config-client 4 cloud: 5 nacos: 6 discovery: 7 server-addr: localhost:8848 8 config: 9 server-addr: localhost:8848 10 # 配置内容文件的数据格式,默认值:properties 11 file-extension: yaml 12 group: BJ_GROUP
3、重新启动项目,访问地址:http://localhost:8901/config/info,获取到的是BJ_GROUP分组中,nacos-config-client-dev.yaml文件的内容
Namespace(命名空间)示例
1、在Nacos的Web界面中——〉命名空间菜单——〉新建命名空间,如下:
命名空间列表
1、在Nacos的Web界面中——〉配置列表——〉选择“DEV”命名空间——〉“+”号,添加配置,如下:
新增内容:
2、修改配置客户端模块内容
application.yml配置:
1 # 端口 2 server: 3 port: 8901 4 5 spring: 6 profiles: 7 # 表示开发环境 8 active: dev
bootstrap.yml配置
1 spring: 2 application: 3 name: nacos-config-client 4 cloud: 5 nacos: 6 discovery: 7 server-addr: localhost:8848 8 config: 9 server-addr: localhost:8848 10 # 配置内容文件的数据格式,默认值:properties 11 file-extension: yaml 12 group: SZ_GROUP 13 # 命名空间ID 14 namespace: c17382d8-9c38-4b21-b4e8-7f8a802788e2
3、重新启动项目,访问地址:http://localhost:8901/config/info,获取到的是DEV命名空间-〉BJ_GROUP分组-〉nacos-config-client-dev.yaml文件的内容
本文来自博客园,作者:荣慕平,转载请注明原文链接:https://www.cnblogs.com/rongmuping/articles/16320161.html