詳解Nacos配置中心的實(shí)現(xiàn)
基礎(chǔ)配置
新建module:cloudalibaba-config-nacos-client3377
pom文件
版本號(hào)已經(jīng)由父工程控制
<?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>cloud2020</artifactId> <groupId>com.atguigu.springcloud</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>cloudalibaba-config-nacos-client3377</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <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> <!--一般基礎(chǔ)配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project>
YML文件
倆個(gè)yml文件:
Nacos同springcloud-config一樣,在項(xiàng)目初始化時(shí),要保證先從配置中心進(jìn)行配置拉取,
拉取配置之后,才能保證項(xiàng)目的正常啟動(dòng)。
springboot中配置文件的加載是存在優(yōu)先級(jí)順序的,bootstrap優(yōu)先級(jí)高于application
bootstrap.yml文件
# nacos配置
server:
port: 3377
spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服務(wù)注冊(cè)中心地址
config:
server-addr: localhost:8848 #Nacos作為配置中心地址
file-extension: yaml #指定yaml格式的配置
application.yml文件
spring:
profiles:
active: dev # 表示開發(fā)環(huán)境
Nacos界面配置對(duì)應(yīng)
公式:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
prefix 默認(rèn)為 spring.application.name 的值
spring.profile.active 即為當(dāng)前環(huán)境對(duì)應(yīng)的 profile,可以通過配置項(xiàng) spring.profile.active 來配置。
file-exetension 為配置內(nèi)容的數(shù)據(jù)格式,可以通過配置項(xiàng) spring.cloud.nacos.config.file-extension 來配置
具備回滾功能
主啟動(dòng)類
@EnableDiscoveryClient @SpringBootApplication public class NacosConfigClientMain3377 { public static void main(String[] args) { SpringApplication.run(NacosConfigClientMain3377.class, args); } }
Controller類
@RestController @RefreshScope public class ConfigClientController { @Value("${config.info}") private String configInfo; @GetMapping("/config/info") public String getConfigInfo() { return configInfo; } }
配置配置中心文件
打開nacos ,登錄到http://localhost:8848/nacos
填寫配置內(nèi)容
config:
info: "dev config version=1"
填寫以后發(fā)布
測試1
打開瀏覽器訪問:localhost:3377/config/info
修改配置文件:
config:
info: "dev config version=2"
測試1
打開瀏覽器訪問:localhost:3377/config/info
Nacos中的匹配規(guī)則
Nacos作為配置中心-分類配置
問題
多環(huán)境多項(xiàng)目管理
問題1:
實(shí)際開發(fā)中,通常一個(gè)系統(tǒng)會(huì)準(zhǔn)備
dev開發(fā)環(huán)境
test測試環(huán)境
prod生產(chǎn)環(huán)境。
如何保證指定環(huán)境啟動(dòng)時(shí)服務(wù)能正確讀取到Nacos上相應(yīng)環(huán)境的配置文件呢?
問題2:
一個(gè)大型分布式微服務(wù)系統(tǒng)會(huì)有很多微服務(wù)子項(xiàng)目,
每個(gè)微服務(wù)項(xiàng)目又都會(huì)有相應(yīng)的開發(fā)環(huán)境、測試環(huán)境、預(yù)發(fā)環(huán)境、正式環(huán)境......
那怎么對(duì)這些微服務(wù)配置進(jìn)行管理呢?
Nacos的圖形化管理界面
配置管理
命名空間
三種方案加載配置
DataID方案
指定spring.profile.active和配置文件的DataID來使不同環(huán)境下讀取不同的配置
測試2
重新啟動(dòng)3377
打開瀏覽器訪問:http://localhost:3377/config/info
Group方案
通過Group實(shí)現(xiàn)環(huán)境區(qū)分
在config下增加一條group的配置即可??膳渲脼镈EV_GROUP或TEST_GROUP
Namespace方案
bootstrap
# nacos注冊(cè)中心
server:
port: 3377
spring:
application:
name: nacos-order
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服務(wù)注冊(cè)中心地址
config:
server-addr: localhost:8848 #Nacos作為配置中心地址
file-extension: yaml #這里我們獲取的yaml格式的配置
namespace: 5da1dccc-ee26-49e0-b8e5-7d9559b95ab0
#group: DEV_GROUP
group: TEST_GROUP
application
# Nacos注冊(cè)配置,application.yml
spring:
profiles:
#active: test
active: dev
#active: info
到此這篇關(guān)于詳解Nacos配置中心的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Nacos配置中心內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot Security整合JWT授權(quán)RestAPI的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot Security整合JWT授權(quán)RestAPI的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11Java filter中的chain.doFilter使用詳解
這篇文章主要介紹了Java filter中的chain.doFilter使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11原理分析SonarQube中IdentityProvider賬戶互斥現(xiàn)象
這篇文章主要為大家介紹分析SonarQube中IdentityProvider賬戶互斥現(xiàn)象原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02SpringMVC結(jié)構(gòu)簡介及常用注解匯總
這篇文章主要介紹了SpringMVC結(jié)構(gòu)簡介及常用注解匯總,幫助大家更好的理解和學(xué)習(xí)使用SpringMVC,感興趣的朋友可以了解下2021-03-03數(shù)組重排序(如何將所有奇數(shù)都放在所有偶數(shù)前面)的深入分析
本篇文章是對(duì)數(shù)組重排序(如何將所有奇數(shù)都放在所有偶數(shù)前面)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Java HashMap 如何正確遍歷并刪除元素的方法小結(jié)
這篇文章主要介紹了Java HashMap 如何正確遍歷并刪除元素的方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05