所有的資料都來源官網,首先先打開Spring的官網https://spring.io,然後進入Projects分類,進入SpringCloud的官網https://spring.io/projects/spring-cloud,再點擊Spring Cloud Alibaba,選擇learn,選擇版本進入Reference Doc. 然後選擇Spring Cloud Alibaba Nacos Config.
Nacos部分詳情參見官網 文檔 https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
在多環境多項目的情況下,就需要對配置文件進行分類管理了。而nacos提供了Namespace+Group+Data ID分類
Namespace+Group+Data ID三者關係?爲什麼這麼設計?
1、是什麼
類似Java裏面的package名和類名
最外層的namespace是可以用於區分部署環境的, Group和DatalD邏輯上區分兩個目標對象。
2、三者情況
默認情況:
Namespace=public, Group=DEFAULT_ GROUP,默認Cluster是DEFAULT
Nacos默認的命名空間是public,Namespace主要用來實現隔離。
比方說我們現在有三個環境:開發、測試、鏟環境,我們就可以創建三E個Namespace,不同的Namespace之間是隔離的。Group默認是DEFAULT_ GROUP, Group可以把不同的微服務劃分到同一個分組裏面去
Service就是微服務;一個Service可以包含多個Cluster (集羣),Nacos默認Cluster是 DEFAULT, Cluster是 對指定微服務的一個虛擬劃分。比方說爲了容災,將Service微服務分別部署在了北京機房和廣州機房,這時就可以給北京機房的Service微服務起一個集羣名稱(BJ) ,給廣州機房的Service微服務起一個集羣名稱(GZ),還可以儘量讓同一個機房的微服務互相調用,以提升性能。
最後是Instance,就是微服務的實例。
下面分別對分類配置進行演示~
DATA ID分類配置:
1、基於上篇文章的dev配置文件,這裏再新建一個nacos-config-client-test.yaml配置
2、修改項目中applicaiton.yml中的配置spring.profile.active:test
spring:
profiles:
# active: dev #表示激活開發環境
active: test #表示激活測試環境
3、通過接口測試,查看configInfo的值是否已經修改
Group分類配置:
1、基於上篇文章的dev配置文件,這裏再新建一個nacos-config-client-dev.yaml配置,但是分組填寫DEV_GROUP
2、在bootstrap.yml文件中添加分組配置 group屬性
# nacos配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服務註冊中心地址
config:
server-addr: localhost:8848 #Nacos服務配置中心地址
file-extension: yaml #指定yaml格式的配置,此處注意只有yaml和properties兩種格式,需要注意
group: DEV_GROUP
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yaml
# nacos-config-client-test.yaml ----> config.info
將application.yml中的激活配置重新修改爲dev激活狀態
spring:
profiles:
active: dev #表示激活開發環境
# active: test #表示激活測試環境
3、請求接口測試結果~
Namespace分類配置:
1、新建命名空間dev/test,有一個public保留空間,是不能刪除的,新建的命名空間id可填不可填,不填的話會默認生成一個流水號
2、通過配置管理的配置列表可以查看新建好的命名空間,點擊可以切換
3、在dev模式下新建配置
4、修改bootstrap.yml文件,添加命名空間配置namespace,值爲Nacos面板中創建命名空間是生成的流水號id
# nacos配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服務註冊中心地址
config:
server-addr: localhost:8848 #Nacos服務配置中心地址
file-extension: yaml #指定yaml格式的配置,此處注意只有yaml和properties兩種格式,需要注意
group: DEV_GROUP
namespace: c55b0aab-105e-4e4b-ad43-f528c45a1242 #填那個命名空間的流水號就是那個命名空間
# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yaml
# nacos-config-client-test.yaml ----> config.info
保留application.yml中的激活配置
spring:
profiles:
active: dev #表示激活開發環境
# active: test #表示激活測試環境
5、通過測試接口來判斷是否配置成功
如果想換成test的命名空間,按照上述步驟在test命名空間中創建配置,然後修改bootstrap中的namespace爲test的流水號,然後application.yml中的配置設置爲test激活,即可進行配置切換