SpringCloud Alibaba之Nacos服務配置中心案例(二)-分類配置

所有的資料都來源官網,首先先打開Spring的官網https://spring.io,然後進入Projects分類,進入SpringCloud的官網https://spring.io/projects/spring-cloud,再點擊Spring Cloud Alibaba,選擇learn,選擇版本進入Reference Doc. 然後選擇Spring Cloud Alibaba Nacos Config.

下面附上直達目錄:https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_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激活,即可進行配置切換

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章