Nacos Spring Cloud 實(shí)現(xiàn)配置熱加載
0x01:安裝 Nacos
下載安裝包,
https://github.com/alibaba/nacos/releases
從下載 nacos-server-$version.zip 安裝包。
解壓安裝包后,在 bin 目錄下運(yùn)行 startup.cmd

訪問
http://localhost:8848/nacos/
即可進(jìn)入 nacos 控制臺(tái)中心,默認(rèn)賬號(hào) / 密碼都是 nacos
0x02:Nacos config
Spring Cloud Alibaba Nacos Config
Nacos 提供用于存儲(chǔ)配置和其他元數(shù)據(jù)的 key/value 存儲(chǔ),為分布式系統(tǒng)中的外部化配置提供服務(wù)器端和客戶端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 應(yīng)用的外部屬性配置。
Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客戶端和服務(wù)器上的概念與 Spring Environment 和 PropertySource 有著一致的抽象,在特殊的 bootstrap 階段,配置被加載到 Spring 環(huán)境中。當(dāng)應(yīng)用程序通過部署管道從開發(fā)到測(cè)試再到生產(chǎn)時(shí),您可以管理這些環(huán)境之間的配置,并確保應(yīng)用程序具有遷移時(shí)需要運(yùn)行的所有內(nèi)容。
0x03:Nacos 配置熱加載
1. 添加依賴
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2. 在 resources 文件夾添加 bootstrap.properties 配置文件
# 服務(wù)名
spring.application.name=mall_member
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
3. 在 nacos 后臺(tái)控制中心新建一個(gè)命名空間
該步主要是為了進(jìn)行各微服務(wù)之間的配置隔離,各微服務(wù)有各自的配置文件。

4. 在新建的命名空間中配置文件
配置文件列表如下

5. 添加新配置文件
新建配置文件

6. 項(xiàng)目中應(yīng)用 Nacos 配置中心的配置文件
如為了應(yīng)用第5中的多個(gè)配置文件,需要在服務(wù)中的 bootstrap.properties 接著配置如下內(nèi)容
spring.application.name=mall_coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# 需要使用的命名空間
spring.cloud.nacos.config.namespace=279c8f44-b257-48df-b2d6-d1cd0d6b6d42
# 需要使用的組
spring.cloud.nacos.config.group=dev
# 其他配置
#配置文件名稱
spring.cloud.nacos.config.ext-config[0].data-id=datasources.yml
#配置文件所屬的組
spring.cloud.nacos.config.ext-config[0].group=dev
#是否自動(dòng)刷新,如果此項(xiàng)為true,當(dāng)我們修改配置中心的這個(gè)配置文件時(shí),服務(wù)會(huì)自動(dòng)應(yīng)用
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true
spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true9. 動(dòng)態(tài)獲取配置
需要添加注解
@RefreshScope //一般在Controller中添加,表示動(dòng)態(tài)獲取配置
@Value("${配置的key值}") //獲取配置文件的值8. 啟動(dòng)測(cè)試
重啟項(xiàng)目,測(cè)試配置項(xiàng)是否應(yīng)用上,可以測(cè)試更改配置內(nèi)容,觀察到無需重啟服務(wù)也能應(yīng)用上新的配置,這就是 Nacos 的強(qiáng)大之處。

喜歡,在看
