一、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文件的內容

本文來自博客園,作者:榮慕平,轉載請注明原文鏈接:http://www.rzrgm.cn/rongmuping/articles/16320161.html

浙公網安備 33010602011771號