日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 架構(gòu)師社區(qū)
[導(dǎo)讀]前言Nacos是阿里巴巴開源的服務(wù)注冊(cè)中心以及配置中心,致力于給開發(fā)者提供一款便捷、簡(jiǎn)單上手的開源框架。Nacos究竟有什么驚人的地方呢?看下圖:從上圖不難看出阿里巴巴的野心,一個(gè)Nacos干掉了SpringCloud的三大組件,分別是注冊(cè)中心Eureka、服務(wù)配置Config,...

前言

Nacos是阿里巴巴開源的服務(wù)注冊(cè)中心以及配置中心,致力于給開發(fā)者提供一款便捷、簡(jiǎn)單上手的開源框架。

Nacos究竟有什么驚人的地方呢?看下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
從上圖不難看出阿里巴巴的野心,一個(gè)Nacos干掉了Spring Cloud的三大組件,分別是注冊(cè)中心Eureka、服務(wù)配置Config,服務(wù)總線Bus

本文目錄結(jié)構(gòu)如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

為什么Nacos這么受歡迎?

Nacos官方文檔的介紹中有這么一句話,如下:

Nacos 幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺(tái)。Nacos 是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應(yīng)用架構(gòu) (例如微服務(wù)范式、云原生范式) 的服務(wù)基礎(chǔ)設(shè)施。

什么意思呢?不著急,有對(duì)比才有傷害。

EurekaConfig這兩個(gè)組件相信大家都用過(guò),有什么感受?

當(dāng)然,這兩個(gè)組件給我最直觀的感受就是繁瑣,原因如下:

  1. 無(wú)論是Eureka還是Config都必須自己搭建個(gè)服務(wù)
  2. 英文界面不是那么友好
用過(guò)Nacos的開發(fā)者都說(shuō)很爽,不用自己搭建服務(wù),阿里給你準(zhǔn)備好了服務(wù),只需要啟動(dòng)即可;界面中英文都有,很適合初學(xué)者。

當(dāng)然最重要的原因就是以上組件很可能面臨停更、比如Eureka已經(jīng)停更了,誰(shuí)知道后面其他的組件會(huì)不會(huì)如此呢?

如何自學(xué)呢?

對(duì)于初學(xué)者當(dāng)然是官方文檔了,下面作者列出了Nacos相關(guān)的官方文檔:

  • https://nacos.io/zh-cn/docs/what-is-nacos.html(中英文兼?zhèn)洌?/li>
  • https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html(英文)
  • https://github.com/alibaba/nacos(Nacos項(xiàng)目倉(cāng)庫(kù))

本文版本說(shuō)明

基于Maven構(gòu)建的微服務(wù)項(xiàng)目,各個(gè)組件版本如下:

  • JDK1.8
  • Spring Boot-2.2.2.RELEASE
  • SpringCloud-Hoxton.SR3
  • SpringCloud Alibaba-2.2.1.RELEASE
注意:Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本可不是隨便選擇的,官網(wǎng)明確規(guī)定了各個(gè)版本的適配:https://github.com/alibaba/spring-cloud-alibaba/wiki,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
不同版本的Alibaba也對(duì)應(yīng)了不同組件的版本,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
一定要完全按照文檔給出的版本來(lái)選擇,不然會(huì)出現(xiàn)意想不到的BUG,那豈不是雞雞....

作者使用的是分模塊的聚合項(xiàng)目演示,其中dependencyManagement依賴如下,對(duì)應(yīng)著上文提到的版本:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
注意:如果你的版本的不是和作者一樣,請(qǐng)一定嚴(yán)格按照官方文檔給的版本進(jìn)行適配,否則會(huì)有意想不到的BUG....

啟動(dòng)Nacos服務(wù)

根據(jù)上面作者選擇的Spring Cloud Alibaba的版本,對(duì)應(yīng)的Nacos版本是1.2.1,直接去GitHub(https://github.com/alibaba/nacos/tags)下載對(duì)應(yīng)的版本即可,可以選擇windows或者Linux,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
下載完成之后直接解壓即可,從它的目錄結(jié)構(gòu)和文件名稱一看這就是一個(gè)Spring Boot 項(xiàng)目。

進(jìn)入/bin目錄,有兩個(gè)腳本,如下:

  • startup.cmd:windows平臺(tái)的啟動(dòng)腳本
  • startup.sh:Linux平臺(tái)的啟動(dòng)腳本
由于作者本地是windows,直接雙擊startup.cmd啟動(dòng)項(xiàng)目,出現(xiàn)以下界面則啟動(dòng)完成:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
在瀏覽器輸入http://localhost:8848/nacos進(jìn)入Nacos的登錄界面。

用戶名:nacos;密碼:nacos

登錄成功的界面如下:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

服務(wù)注冊(cè)發(fā)現(xiàn)

微服務(wù)的服務(wù)注冊(cè)和發(fā)現(xiàn)相信都用過(guò)Eureka,要自己本地構(gòu)建一個(gè)Eureka微服務(wù),但是整合了Alibaba的Nacos則不用那么復(fù)雜,直接啟動(dòng)Alibaba提供的Nacos服務(wù)即可,這樣讓程序員把全部精力放在業(yè)務(wù)上,下面是一個(gè)簡(jiǎn)單的架構(gòu)圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

如何演示效果呢?

參照上面架構(gòu)圖,作者分別創(chuàng)建了兩個(gè)模塊,分別是nacos-provider(服務(wù)提供者)、nacos-consumer(服務(wù)消費(fèi)者),職責(zé)如下:

  • nacos-provider:注冊(cè)進(jìn)入nacos-server,對(duì)外暴露服務(wù)
  • nacos-consumer:注冊(cè)進(jìn)入nacos-server,調(diào)用nacos-provider的服務(wù)

nacos-provider服務(wù)提供者創(chuàng)建

由于使用了多模塊聚合項(xiàng)目,只需要?jiǎng)?chuàng)建一個(gè)nacos-provider模塊即可。步驟如下:

1. 添加Maven依賴

需要添加spring-cloud-starter-alibaba-nacos-discovery這個(gè)依賴,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
由于父模板中指定了spring-cloud-alibaba-dependencies的版本,子模塊中直接引入依賴即可,不需要指定版本號(hào),這樣才能達(dá)到版本管理的效果。

2. 配置YML文件

在配置文件中指定服務(wù)名稱、端口號(hào)、nacos-server的地址等信息,如下:

server:
??port:?9001
spring:
??application:
????##?指定服務(wù)名稱,在nacos中的名字
????name:?nacos-provider
??cloud:
????nacos:
??????discovery:
????????#?nacos的服務(wù)地址,nacos-server中IP地址:端口號(hào)
????????server-addr:?127.0.0.1:8848
management:
??endpoints:
????web:
??????exposure:
????????##?yml文件中存在特殊字符,必須用單引號(hào)包含,否則啟動(dòng)報(bào)錯(cuò)
????????include:?'*'

3. 開啟服務(wù)注冊(cè)發(fā)現(xiàn)功能

這個(gè)大部分Spring Boot功能模塊相同,都需要使用@EnableXxxx注解來(lái)開啟某個(gè)功能,否則無(wú)法引入自動(dòng)配置。這里需要使用Spring Cloud的原生注解@EnableDiscoveryClient來(lái)開啟服務(wù)注冊(cè)發(fā)現(xiàn)的功能,如下:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

4. 寫個(gè)演示服務(wù)

nacos-provider作為服務(wù)提供者注冊(cè)到nacos中,肯定需要提供個(gè)服務(wù)來(lái)供消費(fèi)者(nacos-consumer)調(diào)用,下面是隨便寫的一個(gè)接口:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

5. 啟動(dòng)項(xiàng)目

按照上面的5個(gè)步驟算是完成了最基本的一個(gè)服務(wù),現(xiàn)在只需要啟動(dòng)nacos-provider這個(gè)服務(wù)即可。

啟動(dòng)成功之后在nacos的服務(wù)管理->服務(wù)列表這里將會(huì)發(fā)現(xiàn)注冊(cè)進(jìn)入的nacos-provider這個(gè)服務(wù),如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
OK,在nacos中能夠看到服務(wù)注冊(cè)成功了,完成任務(wù)..........

nacos-consumer服務(wù)消費(fèi)者創(chuàng)建

同樣是注冊(cè)進(jìn)入nacos,因此大致步驟都是一樣的,步驟如下:

1. 添加Maven依賴

需要添加spring-cloud-starter-alibaba-nacos-discovery這個(gè)依賴,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

2. 配置YML文件

同樣是指定服務(wù)名、端口、nacos-server的地址,如下:

server:
??port:?9002
spring:
??application:
????name:?nacos-consumer
??cloud:
????nacos:
??????discovery:
????????#?nacos的服務(wù)地址
????????server-addr:?127.0.0.1:8848
management:
??endpoints:
????web:
??????exposure:
????????##?yml文件中存在特殊字符,必須用單引號(hào)包含,否則啟動(dòng)報(bào)錯(cuò)
????????include:?'*'

3. 開啟服務(wù)注冊(cè)發(fā)現(xiàn)功能

使用@EnableDiscoveryClient標(biāo)注,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

4. 寫個(gè)演示服務(wù)

如何演示呢?nacos-provider提供了一個(gè)服務(wù),那么我們就調(diào)用它的服務(wù)來(lái)演示一把。

其實(shí)Nacos集成了Ribbon,何以見得呢?打開spring-cloud-starter-alibaba-nacos-discovery的依賴一看便知,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
因此我們便能使用Ribbon的負(fù)載均衡來(lái)調(diào)用服務(wù),步驟如下:

  • 創(chuàng)建RestTemplate,使用@LoadBalanced注解標(biāo)注開啟負(fù)載均衡,如下圖:
五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
  • 直接使用注冊(cè)到nacos的中的服務(wù)名作為訪問(wèn)地址調(diào)用服務(wù),如下圖:
五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
  • 上圖中的serviceUrl是什么東西呢?難道是IP地址?當(dāng)然不是,既然nacos-provider和nacos-consumer都已經(jīng)注冊(cè)到nacos中,那么可能是可以直接通過(guò)服務(wù)名直接找到對(duì)應(yīng)得服務(wù),因此這個(gè)serviceUrl=http://service-name,如下圖:
五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
OK,至此nacos-consumer已經(jīng)準(zhǔn)備完成,下面就可以啟動(dòng)項(xiàng)目。

5. 啟動(dòng)項(xiàng)目

啟動(dòng)成功之后將會(huì)在nacos中的服務(wù)列表中查看到兩個(gè)服務(wù),分別是nacos-provider、nacos-consumer,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
此時(shí)服務(wù)提供者和消費(fèi)者都已成功注冊(cè)到Nacos,那么接下來(lái)就是測(cè)試服務(wù)能否調(diào)的通的問(wèn)題了。

直接調(diào)用nacos-consumer的接口,輸入地址:http://localhost:9002/nacos/test/16,返回信息如下圖則表示相互調(diào)用成功:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

總結(jié)

Nacos的服務(wù)注冊(cè)發(fā)現(xiàn)很簡(jiǎn)單,比Eureka簡(jiǎn)單多了,無(wú)需自己構(gòu)建個(gè)注冊(cè)中心。

啟動(dòng)配置管理

為什么要用配置管理?其實(shí)這已經(jīng)不僅僅是微服務(wù)的痛點(diǎn)了,單體服務(wù)也存在這樣的痛點(diǎn)。試問(wèn)線上的項(xiàng)目如果想要的修改某個(gè)配置,比如添加一個(gè)數(shù)據(jù)源,難道要停服更新?顯然是不太現(xiàn)實(shí),那么如何解決呢?

對(duì)于單體應(yīng)用前面已經(jīng)寫過(guò)一篇文章,感興趣的可以看:如何讓Spring Boot 的配置 "動(dòng)" 起來(lái)?

微服務(wù)環(huán)境下可選的方案還是很多的,比如Config BUS,攜程開源的Apollo....

這都不是今天的重點(diǎn),用過(guò)Config BUS覺(jué)得怎么樣?自己要搭建一個(gè)Config微服務(wù),還要集成GitHub等,你不難受嗎?

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
下面就來(lái)介紹一下Nacos是如何完美的實(shí)現(xiàn)配置管理以及動(dòng)態(tài)刷新的。

如何演示效果呢?

新建一個(gè)模塊nacos-config用來(lái)整合Nacos實(shí)現(xiàn)配置管理,項(xiàng)目結(jié)構(gòu)如下:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
Nacos配置列表在哪里能看到呢?在管理平臺(tái)->配置管理->配置列表這一欄,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

添加依賴

由于使用了模塊聚合的工程,因此不需要指定版本號(hào),依賴如下:

<dependency>
??????<groupId>com.alibaba.cloudgroupId>
??????<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
????dependency>

配置YAML文件

bootstrap.yml文件中設(shè)置Nacos的配置,如下:

spring:
??application:
????name:?nacos-config
????##?當(dāng)前環(huán)境,這個(gè)和dataId有關(guān)->?${prefix}-${spring.profiles.active}.${file-extension}
??profiles:
????active:?dev
??cloud:
????nacos:
??????config:
????????##?nacos的地址,作為配置中心
????????server-addr:?127.0.0.1:8848
????????##?配置內(nèi)容的數(shù)據(jù)格式,目前只支持?properties?和?yaml?類型,這個(gè)和dataId有關(guān)->?${prefix}-${spring.profiles.active}.${file-extension}
????????file-extension:?properties
management:
??endpoints:
????web:
??????exposure:
????????##?yml文件中存在特殊字符,必須用單引號(hào)包含,否則啟動(dòng)報(bào)錯(cuò)
????????include:?'*'

Data ID是什么?

dataId是一個(gè)配置的唯一標(biāo)識(shí),怎么取值呢?格式如下:

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix:前綴,默認(rèn)是spring.application.name的值,也可以通過(guò)配置項(xiàng) spring.cloud.nacos.config.prefix來(lái)配置。
  • spring.profiles.active:即為當(dāng)前環(huán)境對(duì)應(yīng)的 profile。當(dāng) spring.profiles.active 為空時(shí),對(duì)應(yīng)的連接符 - 也將不存在,dataId 的拼接格式變成 ${prefix}.${file-extension}
  • file-exetension 為配置內(nèi)容的數(shù)據(jù)格式,可以通過(guò)配置項(xiàng) spring.cloud.nacos.config.file-extension 來(lái)配置。目前只支持 propertiesyaml 類型。

添加一個(gè)配置

下面在nacos中添加一個(gè)config.version的配置,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
以上就是添加的config.version的配置,發(fā)布之后查看列表如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

獲取nacos中的配置

獲取nacos中的配置很簡(jiǎn)單,使用原生注解@Value()直接讀取即可,步驟如下:

  • 新建一個(gè)實(shí)體類DynamicConfigEntity
@Component
@Data
public?class?DynamicConfigEntity?{

????//直接讀取nacos中config.version的配置
????@Value("${config.version}")
????private?String?version;
}
  • 新建一個(gè)controller測(cè)試,如下:
@RestController
@RequestMapping("/nacos")
public?class?NacosController?{

????@Autowired
????private?DynamicConfigEntity?entity;


????@GetMapping("/test/{id}")
????public?String?test(@PathVariable("id")Integer?id){
????????return?"accept?one?msg?id=" id "-----?version=" entity.getVersion();
????}
}
運(yùn)行項(xiàng)目成功后,在瀏覽器輸入地址:http://localhost:9003/nacos/test/1,返回如下結(jié)果:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
結(jié)果很明顯,Nacos中的配置生效了,是不是很簡(jiǎn)單?

配置如何動(dòng)態(tài)刷新?

設(shè)想一下:現(xiàn)在由于需求改變了,我需要將config.version這個(gè)配置改成2,那么我直接改變Nacos中的配置會(huì)生效嗎?

不妨試一下,直接將Nacos中的配置修改成2,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
此時(shí)我們?cè)俨恢貑㈨?xiàng)目的情況下訪問(wèn):http://localhost:9003/nacos/test/1,結(jié)果如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
what???怎么沒(méi)變呢?不是說(shuō)Nacos可以自動(dòng)刷新配置嗎?

其實(shí)想要Nacos自動(dòng)刷新配置還需要結(jié)合原生注解@RefreshScope,這個(gè)注解是不是很眼熟,在Config中也是用這個(gè)注解刷新配置,我們只需要將該注解標(biāo)注在配置的實(shí)體類上即可,如下:

@Component
@RefreshScope
@Data
public?class?DynamicConfigEntity?{

????//直接讀取nacos中config.version的配置
????@Value("${config.version}")
????private?String?version;
}
此時(shí)加上@RefreshScope重啟之后將Nacos中config.version這個(gè)配置改成3,然后訪問(wèn)http://localhost:9003/nacos/test/1,結(jié)果如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

多環(huán)境如何隔離配置?(Namespace)

試想一下:正常的業(yè)務(wù)開發(fā)至少有三個(gè)環(huán)境吧,如下:

  • dev:本地開發(fā)環(huán)境
  • test:測(cè)試環(huán)境
  • prod:生產(chǎn)環(huán)境
那么每個(gè)環(huán)境的配置肯定是不同的,那么問(wèn)題來(lái)了,如何將以上三種不同的配置在Nacos能夠很明顯的區(qū)分呢?

很多人可能會(huì)問(wèn):DataId格式中不是有環(huán)境的區(qū)分嗎?這個(gè)不是可以滿足嗎?

DataId當(dāng)然能夠區(qū)分,但是微服務(wù)配置可不止這幾個(gè)啊?一旦多了你怎么查找呢?多種環(huán)境的配置雜糅到一起,你好辨別嗎?

當(dāng)然阿里巴巴的Nacos開發(fā)團(tuán)隊(duì)顯然考慮到了這種問(wèn)題,官方推薦用命名空間(namespace)來(lái)解決環(huán)境配置隔離的問(wèn)題。

Namespace(命名空間):解決多環(huán)境及多租戶數(shù)據(jù)的隔離問(wèn)題 在多套不同的環(huán)境下,可以根據(jù)指定的環(huán)境創(chuàng)建不同的Namespace,實(shí)現(xiàn)多環(huán)境的數(shù)據(jù)隔離

Nacos中默認(rèn)提供的命名空間則是public,上述我們創(chuàng)建的config.version這個(gè)配置就屬于public這個(gè)命名空間,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
當(dāng)然我們可以根據(jù)業(yè)務(wù)需要?jiǎng)?chuàng)建自己的命名空間,操作如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
陳某創(chuàng)建了三個(gè),分別是dev、test、prod,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
注意:上圖中的命名空間ID是系統(tǒng)自動(dòng)生成的唯一ID,后續(xù)指定不同的Namespace就用這個(gè)ID。

創(chuàng)建完成之后,在配置列表上方則可以看見不同的命名空間,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
既然Nacos中的Namespace配置好了,那么微服務(wù)中如何配置呢?前面也說(shuō)過(guò),Nacos默認(rèn)指定的命名空間是public,那么如何在項(xiàng)目中指定命名空間呢?

其實(shí)很簡(jiǎn)單,假設(shè)在test這個(gè)命名空間中添加一個(gè)config.version=4,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
此時(shí)只需要在bootstrap.yml配置中指定如下配置:

spring:
??application:
????name:?nacos-config
??cloud:
????nacos:
??????config:
??????##?namespace的取值是命名空間ID,這里取的是test命名空間ID
????????namespace:?d0ffeec2-3deb-4540-9664-fdd77461fd6b
注意:Namespace必須在bootstrap.yml配置文件中指定,否則不生效。

至此,已經(jīng)全部配置完畢,啟動(dòng)項(xiàng)目,瀏覽器訪問(wèn)http://localhost:9003/nacos/test/1,結(jié)果如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

不同業(yè)務(wù)配置如何隔離?(Group)

試想以下場(chǎng)景:有兩個(gè)微服務(wù),一個(gè)是訂單系統(tǒng),一個(gè)是用戶系統(tǒng),但是他們有著相同的配置,比如datasource-url,那么如何區(qū)分呢?

此時(shí)Group就派上用場(chǎng)了,顧名思義Group是分組的意思。

Group:Nacos 中的一組配置集,是組織配置的維度之一,簡(jiǎn)單的說(shuō)則是不同的系統(tǒng)或微服務(wù)的配置文件可以放在一個(gè)組里。Nacos如果不指定Group,則默認(rèn)的分組是DEFAULT_GROUP。

上述場(chǎng)景中訂單系統(tǒng)、用戶系統(tǒng)可以單獨(dú)分為一個(gè)組,比如ORDER_GROUP、USER_GROUP。當(dāng)然這是比較細(xì)粒度的分組,根據(jù)企業(yè)的業(yè)務(wù)也可以多個(gè)微服務(wù)分為一組。

下面在Nacos中新建一個(gè)config.version=5,命名空間為test,分組為ORDER_GROUP,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
此時(shí)命名空間test中的配置如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
bootstrap.yml配置文件中指定分組,配置如下:

spring:
??application:
????name:?nacos-config
??cloud:
????nacos:
??????config:
????????##?指定命名空間
????????namespace:?d0ffeec2-3deb-4540-9664-fdd77461fd6b
????????##?指定分組為ORDER_GROUP
????????group:?ORDER_GROUP
注意:Group配置和Namespace一樣,要在bootstrap.yml文件中配置。

至此,已經(jīng)全部配置完畢,啟動(dòng)項(xiàng)目,瀏覽器訪問(wèn)http://localhost:9003/nacos/test/1,結(jié)果如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?

總結(jié)

Nacos實(shí)現(xiàn)配置管理和動(dòng)態(tài)配置刷新很簡(jiǎn)單,總結(jié)如下步驟:

  1. 添加對(duì)應(yīng)spring-cloud-starter-alibaba-nacos-config依賴
  2. 使用原生注解@Value()導(dǎo)入配置
  3. 使用原生注解@RefreshScope刷新配置
  4. 根據(jù)自己業(yè)務(wù)場(chǎng)景做好多環(huán)境配置隔離(Namespace)、不同業(yè)務(wù)配置隔離(Group)
  5. 切記:命名空間和分組的配置一定要放在bootstrap.yml或者bootstrap.properties配置文件中

Nacos如何共享配置?

場(chǎng)景:一個(gè)項(xiàng)目的微服務(wù)數(shù)量逐漸增多,勢(shì)必會(huì)有相同的配置,那么我們可以將相同的配置抽取出來(lái)作為項(xiàng)目中共有的配置,比如集群中的數(shù)據(jù)源信息..

Nacos的共享配置能夠完美的解決上述問(wèn)題,配置起來(lái)也是很簡(jiǎn)單,沒(méi)辦法,就是這么強(qiáng)大。

Nacos中新建共享配置

陳某這里演示兩個(gè)共享配置,DataId分別是share-config1.properties,share-config2.properties,如下圖:

五十五張圖告訴你微服務(wù)的靈魂擺渡者Nacos究竟有多強(qiáng)?
注意:DataId一定要帶有后綴properties或者yml

share-config1.properties配置中的內(nèi)容如下:

database.url=jdbc:mysql://112.111.0.135:3306/nacos_config?characterEncoding=utf8
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉