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尋找dataId為order-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.yml和common2.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