高中畢業(yè)學(xué)網(wǎng)站開(kāi)發(fā)廣州google推廣
上篇主要講了使用eureka,zk,nacos當(dāng)注冊(cè)中心
這篇內(nèi)容是nacos配置中心
代碼改動(dòng)部分mysql驅(qū)動(dòng)更新到8.0,數(shù)據(jù)庫(kù)版本升級(jí)到了8.0,nacos版本更新到了2.x
nacos2.x鏈接
鏈接:https://pan.baidu.com/s/11nObzgTjWisAfOplNuKP-Q?pwd=o93q
提取碼:o93q
–來(lái)自百度網(wǎng)盤(pán)超級(jí)會(huì)員V7的分享
然后啟動(dòng)nacos,新建兩個(gè)命名空間,它的作用是為了區(qū)分不同環(huán)境
再切換到配置列表,切換到dev的這個(gè)命名空間
點(diǎn)創(chuàng)建配置,創(chuàng)建一個(gè)配置文件,類(lèi)型為yaml
他們的關(guān)系如下
Nacos默認(rèn)的Namespace是public,Namespace主要用來(lái)實(shí)現(xiàn)隔離。
比方說(shuō)我們現(xiàn)在有三個(gè)環(huán)境:開(kāi)發(fā)、測(cè)試、生產(chǎn)環(huán)境,我們就可以創(chuàng)建三個(gè)Namespace,不同的Namespace之間是隔離的。
Group默認(rèn)是DEFAULT_GROUP,Group可以把不同的微服務(wù)劃分到同一個(gè)分組里面去
Service就是微服務(wù):一個(gè)Service可以包含多個(gè)Cluster (集群),Nacos默認(rèn)Cluster是DEFAULT,Cluster是對(duì)指定微服務(wù)的一個(gè)虛擬劃分。
比方說(shuō)為了容災(zāi),將Service微服務(wù)分別部署在了杭州機(jī)房和廣州機(jī)房,這時(shí)就可以給杭州機(jī)房的Service微服務(wù)起一個(gè)集群名稱(chēng)(HZ) ,給廣州機(jī)房的Service微服務(wù)起一個(gè)集群名稱(chēng)(GZ),還可以盡量讓同一個(gè)機(jī)房的微服務(wù)互相調(diào)用,以提升性能。
最后是Instance,就是微服務(wù)的實(shí)例。
然后我們啟動(dòng)一下這個(gè)服務(wù),調(diào)用一下接口,可以看到,成功讀取了配置
http://localhost:3377/config/info
簡(jiǎn)單使用的就說(shuō)到這里
后面再說(shuō)一下其他的
注:
1)不能使用原來(lái)的application.yml作為配置文件,而是新建一個(gè)bootstrap.yml作為配置文件;
2)在bootstrap和application數(shù)據(jù)項(xiàng)相同時(shí),bootstrap中的配置不會(huì)被覆蓋;
配置文件優(yōu)先級(jí)(由高到低):
bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml
配置動(dòng)態(tài)刷新
在入門(mén)案例中,我們實(shí)現(xiàn)了配置的遠(yuǎn)程存放,但是此時(shí)如果修改了配置,我們的程序是無(wú)法讀取到 的,因此,我們需要開(kāi)啟配置的動(dòng)態(tài)刷新功能。
//只需要在需要?jiǎng)討B(tài)讀取配置的類(lèi)上添加此注解就可以
@RefreshScope
后面再說(shuō)一下配置共享
如果想在同一個(gè)微服務(wù)的不同環(huán)境之間實(shí)現(xiàn)配置共享,其實(shí)很簡(jiǎn)單。 只需要提取一個(gè)以spring.application.name 命名的配置文件,然后將其所有環(huán)境的公共配置放在里 面即可。
1 新建一個(gè)名為nacos-config-client.yamll配置,代表只要服務(wù)名是:nacos-config-client都能讀到這個(gè)配置
不同微服務(wù)中間共享配置
不同為服務(wù)之間實(shí)現(xiàn)配置共享的原理類(lèi)似于文件引入,就是定義一個(gè)公共配置,然后在當(dāng)前配置中引入。
在nacos中定義一個(gè)DataID為all-service.yaml的配置,用于所有微服務(wù)共享
# nacos配置
server:port: 3377spring:application:name: nacos-config-clientcloud:nacos:discovery:server-addr: localhost:8848 #Nacos服務(wù)注冊(cè)中心地址config:server-addr: localhost:8848 #Nacos作為配置中心地址file-extension: yaml #指定yaml格式的配置group: NACOS_GROUPnamespace: dev#共享的配置
# shared-dataids: all-service.yaml # 配置要引入的配置
# refreshable-dataids: all-service.yaml # 配置要實(shí)現(xiàn)動(dòng)態(tài)配置刷新的配置ext-config:- data-id: all-service.yamlgroup: NACOS_GROUPrefresh: true