nacos配置中心使用

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

 

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