本文為博主原創,轉載請注明出處:
在分布式微服務框架中,現在都流行使用 nacos 作為分布式框架的注冊中心與配置中心。當我們搭建一套spring boot 框架的時候,默認會將配置文件
放在 resources 的配置目錄下有bootstrap.yml 及application-dev.properties 配置文件進行管理,包括數據庫配置,端口配置等等。
現在使用 nacos 便可實現服務注冊 與 配置管理的功能。
nacos 提供的中文網址連接如下:https://nacos.io/zh-cn/docs/quick-start-spring-boot.html
具體步驟如下:
1.在項目中引入nacos 以及spring boot web啟動的相關的依賴:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> <relativePath/> </parent> <properties> <java.version>1.8</java.version> <spring-boot.version>2.2.8.RELEASE</spring-boot.version> <spring-cloud.version>2.2.2.RELEASE</spring-cloud.version> <spring-nacos.version>2.2.1.RELEASE</spring-nacos.version> </properties> <dependencies> <!--web啟動--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${spring-boot.version}</version> </dependency> <!--nacos-config--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${spring-nacos.version}</version> </dependency> <!--nacos-discovery--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>${spring-nacos.version}</version> </dependency> </dependencies>
2.在項目配置 bootstrap.yml 文件中配置配置中心:
其中有一個默認組group的屬性,如果不配其默認值為 DEFAULT_GROUP
spring: application: # 服務名稱盡量用-,不要用_,不要用特殊字符 name: test2 cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml
3.本地安裝並啟動 nacos
nacos 默認的用戶名和密碼都為 nacos 。 在nacos 管理台進行配置中心的配置:
配置管理 ---〉配置列表 ---- 〉點擊加號 進行創建
點擊加號進行配置
dataId 為項目框架中 bootstrap.yml 中的 spring.application.name 的配置值。
之於項目中 為什么要配置 bootstrap.yml 中配置application.name 以及項目啟動如何匹配對應的配置文件列表,其緣由在nacos 中文網址給了說明:
進行啟動,通過觀察項目啟動的端口號判斷是否正確使用配置中心的配置,若未正確加載,則項目啟動成功的端口號則為默認的8080,
若正確加載,則項目啟動的端口號為配置中心的端口號:
4.配置中心使用命名空間區分環境
spring boot 項目中,常使用 application-dev.properties, application-test.properties, application-prd.properties等方式指定不同環境下的配置文件。
nacos配置中心可以創建命名空間,區分不同的環境類型。
創建之后,會在配置列表看到 dev 的 tab 列表
在列表中創建對應的配置,我這邊創建的簡單的配置如下:
在項目代碼的配置文件中指定命名空間以及 環境類型就可加載使用,在bootstrap.yaml中配置如下:
namespace 的值為nacos 中命名空間的ID的值
spring: application: # 服務名稱盡量用-,不要用_,不要用特殊字符 name: test1 profiles: active: dev cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml group: DEFAULT_GROUP namespace: 9f471483-5467-4077-81ae-b7ddb6cf2248
本地項目啟動加載配置,通過啟動日志觀察服務端口便可判斷配置是否加載:
注意事項:
1.在配置過程中,需要注意 pom中的 spring-boot-starter-parent 與 spring-boot-starter-web 兩者的版本號相差不能太大,相差太大,容易導致啟動報錯,某些類 ClassNotFoundException等
2.需要在項目的配置文件中指定項目名稱