SpringCloud-Alibaba-Nacos配置中心
如何接入
在啟動示例進行演示之前,我們先了解一下 Spring Cloud 應用如何接入 Nacos Config。 注意 本章節只是為了便於您理解接入方式,本示例程式碼中已經完成接入工作,您無需再進行修改。
-
首先,修改 pom.xml 檔案,引入 Nacos Config Starter。
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
-
在應用的 /src/main/resources/bootstrap.properties 配置檔案中配置 Nacos Config 元資料
spring.application.name=nacos-config-example spring.cloud.nacos.config.server-addr=127.0.0.1:8848
-
完成上述兩步後,應用會從 Nacos Config 中獲取相應的配置,並新增在 Spring Environment 的 PropertySources 中。這裡我們使用 @Value 註解來將對應的配置注入到 SampleController 的 userName 和 age 欄位,並新增 @RefreshScope 開啟動態重新整理功能
@RefreshScope class SampleController { @Value("${user.name}") String userName; @Value("${user.age}") int age; }
啟動 Nacos Server 並新增配置
-
首先需要獲取 Nacos Server,支援直接下載和原始碼構建兩種方式。推薦使用最新版本 Nacos Server
- 直接下載:Nacos Server 下載頁
- 原始碼構建:進入 Nacos Github 專案頁面,將程式碼 git clone 到本地自行編譯打包,參考此文件。
-
啟動 Server,進入下載到本地並解壓完成後的資料夾(使用原始碼構建的方式則進入編譯打包好的資料夾),再進去其相對資料夾 nacos/bin,並對照作業系統實際情況執行如下命令。
- Linux/Unix/Mac 作業系統,執行命令
sh startup.sh -m standalone
- Windows 作業系統,執行命令
cmd startup.cmd
- Linux/Unix/Mac 作業系統,執行命令
-
在命令列執行如下命令,向 Nacos Server 中新增一條配置。
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos-config-example.properties&group=DEFAULT_GROUP&content=user.id=1%0Auser.name=james%0Auser.age=17"
注:你也可以使用其他方式新增,遵循 HTTP API 規範即可,若您使用的 Nacos 版本自帶控制檯,建議直接使用控制檯進行配置
新增的配置的詳情如下
dataId 為 nacos-config-example.properties group 為 DEFAULT_GROUP 內容如下 user.id=1 user.name=james user.age=17
應用啟動
-
增加配置,在應用的 /src/main/resources/application.properties 中新增基本配置資訊
server.port=18084 management.endpoints.web.exposure.include=*
-
啟動應用,支援 IDE 直接啟動和編譯打包後啟動。
- IDE直接啟動:找到主類
Application
,執行 main 方法啟動應用。 - 打包編譯後啟動:首先執行
mvn clean package
將工程編譯打包,然後執行java -jar nacos-config-example.jar
啟動應用。
- IDE直接啟動:找到主類
驗證
驗證自動注入
在瀏覽器位址列輸入 http://127.0.0.1:18084/user
,並點選調轉,可以看到成功從 Nacos Config Server 中獲取了資料。
驗證動態重新整理
-
執行如下命令,修改 Nacos Server 端的配置資料
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos-config-example.properties&group=DEFAULT_GROUP&content=user.id=1%0Auser.name=james%0Auser.age=18"
-
在瀏覽器位址列輸入
http://127.0.0.1:18084/user
,並點選調轉,可以看到應用從 Nacos Server 中獲取了最新的資料,age 變成了 18。