nacos配置中心使用

白露非霜發表於2020-12-16

Nacos不僅可以作為註冊中心使用,還可以作為配置中心使用。相比於使用spring-cloud-config-server來說,我們可以不用再去建一個配置檔案的git倉庫,直接可以在nacos的控制檯進行操作,同時配置檔案熱更新也更為方便,只需要在控制檯修改,服務端就更新了。

1.加依賴

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2.同樣的建立bootstrap.yml檔案

 

 

spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml
  application:
    name: order
  profiles:
    active: dev

這樣服務啟動的時候會去nacos尋找dataIdorder-dev.yml的配置

3.nacos控制檯建立dataId為order-dev.yml的配置

 

 

 

 

 

DataID就是我們的完整的配置的名字,需要加上yml字尾。

 

還有編輯操作可以隨時修改、新增配置

啟動服務可以看見載入了order-dev.yml配置的內容

 

 

4.公用配置

我們還可以通過shared-configs配置公用的的配置,比如註冊中心大家都用同一個,redis的也可能是多個服務用同一個配置,修改一下上面的bootstrap.yml檔案

 

spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml
        shared-configs: #公用配置檔案
          - data-id: common1.yml
            refresh: true #是否支援自動重新整理
          - data-id: common2.yml
            refresh: true
#        extension-configs: #同上

  application:
    name: order
  profiles:
    active: dev

 

再去nacos配置中心配置dataId為common1.ymlcommon2.yml的配置

 

 重啟服務可以檢視日誌資訊裡面載入了common1和common2的配置

5.配置熱更新

熱更新,使用@Value的配置需要在當前的類上面加上@RefreshScope註解,就可以支援熱更新了,只需要在nacos配置中心修改了值,服務那邊也會跟著進行重新整理。(https://nacos.io/zh-cn/docs/open-api.html

 

6.nacos內建derby資料庫

Nacos內建了一個Derby資料庫這些配置資料都放在裡面

我們可以使用idea連結上derby資料庫

 

 

 Path是我們的nacos目錄下的data/derby-data

帳戶密碼就是預設nacos/nacos

我們的配置資訊就在這兒,如果連線不上資料庫,把啟動的nacos服務停掉再連線就可以了,配置資訊在config_info表裡面

 

 

 

我們登入nacos的賬號和密碼也在USERS表中

 

 

 如果要修改nacos的密碼,可以直接再這裡修改,我們再這裡新增一個帳戶nijunyang/123456上去,它加密是用的org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder,引入這個類所在的包,直接用starter:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-security</artifactId>
</dependency>

 

將密碼加密出來插入到資料庫中去:

 

 

再次啟動nacos就可以使用新密碼去登入了

完整程式碼demo:https://github.com/bluedarkni/study/tree/master/cloud-alibaba

 

相關文章