Nacos 之服務配置中心
阿新 • • 發佈:2022-03-10
一、Nacos 作為配置中心-基礎配置
1.建立Model
建立一個名為”cloudalibaba-config-nacos-client3377“的Model。
2.改POM
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>springcloud-nacos</artifactId> <groupId>com.ckfuture.springcloud</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>cloudalibaba-config-nacos-client3377</artifactId> <dependencies> <!--nacos-config--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <!--nacos-discovery--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--web+actuator--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies> </project>
3.建YML
分別建立”application.yml“和”bootstrap.yml“兩個配置
application.yml
spring:
profiles:
active: dev #表示開發環境
bootstrap.yml
# Nacos全域性配置 server: port: 3377 spring: application: name: nacos-config-client cloud: nacos: discovery: server-addr: localhost:8848 #nacos 服務註冊中心地址 config: server-addr: localhost:8848 #nacos 作為配置中心地址 file-extension: yaml #指定yaml格式的配置
4.主啟動類
package com.ckguture.springcloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @EnableDiscoveryClient @SpringBootApplication public class NacosConfigClientMain3377 { public static void main(String[] args) { SpringApplication.run(NacosConfigClientMain3377.class,args); } }
5.業務類
package com.ckguture.springcloud.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RefreshScope //支援Nacos的動態重新整理功能 public class ConfigClientController { @Value("${config.info}") private String configInfo; @GetMapping("/config/info") public String getConfigInfo(){ return configInfo; } }
6.在Nacos中新增配置資訊
Nacos配置管理dataId的完整格式:
${prefix}-${spring.profile.active}.${file-extension}
prefix 預設為spring.application.name 的值,也可通過配置項 spring.cloud.nacos.config.prefix來配置。
spring.profile.active 即為當前環境對應的profile
file-extension 為配置內容的資料格式,目前支援 properties和yml型別。
最終公式:
${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
根據公司得到配置dataId為:nacos-config-client-dev.yaml (注意 yaml不是yml)
在Nacos的配置列表中新增配置
配置內容為:
config: info: nacos config center,version = 1
7.測試
啟動主啟動類
瀏覽器訪問:http://localhost:3377/config/info
8.自帶動態重新整理
修改Nacos配置內容,介面訪問跟著重新整理。
再次訪問: