自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手教你使用Nacos配置中心

開(kāi)發(fā) 前端
今天主要介紹了Nacos中配置中心的使用,包括基于namespace實(shí)現(xiàn)的多環(huán)境和多租戶的配置,基于group實(shí)現(xiàn)的業(yè)務(wù)隔離,以及共享配置。

[[414641]]

Nacos整合了注冊(cè)中心和配置中心,使用起來(lái)非常方便,這篇文章主要介紹Nacos配置中心的使用。

新建配置

啟動(dòng)Nacos服務(wù)后,進(jìn)入注冊(cè)中心配置頁(yè)面,如下圖:

圖片

點(diǎn)擊上圖中紅框里面的加號(hào),進(jìn)入新建配置頁(yè)面,如下圖:

圖片

上圖Data ID的完整格式如下:

  1. ${prefix}-${spring.profiles.active}.${file-extension} 

說(shuō)明如下:

  • prefix:默認(rèn)是spring.application.name的值,可以通過(guò)配置項(xiàng) spring.cloud.nacos.config.prefix在配置文件中配置。
  • spring.profiles.active即為當(dāng)前環(huán)境對(duì)應(yīng)的profile。

當(dāng) spring.profiles.active 為空時(shí),對(duì)應(yīng)的連接符-也將不存在,dataId的拼接格式變成 {file-extension}

file-exetension 為配置內(nèi)容的文件格式,目前只支持properties和yaml類型,可以通過(guò)配置項(xiàng) spring.cloud.nacos.config.file-extension在配置文件中配置。

這里我創(chuàng)建一個(gè)Data ID,內(nèi)容如下圖:

圖片

這里使用的spring.profiles.active是dev,bootstrap.properties的配置如下:

  1. spring.application.name=nacos-producer 
  2. spring.cloud.nacos.config.file-extension=properties 

增加下面這個(gè)Controller類進(jìn)行測(cè)試:

  1. @Controller 
  2. @RequestMapping("config"
  3. @RefreshScope 
  4. public class ConfigController { 
  5.  
  6.     @Value("${useLocalCache}"
  7.     private boolean useLocalCache; 
  8.  
  9.     @RequestMapping(value = "/get", method = GET) 
  10.     @ResponseBody 
  11.     public boolean get() { 
  12.         return useLocalCache; 
  13.     } 

在瀏覽器輸入下面的URL后輸出 true,更改之后輸出也會(huì)跟著變化:

  1. http://localhost:8083/config/get 

@RefreshScope這個(gè)注解可以讓應(yīng)用動(dòng)態(tài)刷新配置

多環(huán)境

實(shí)際開(kāi)發(fā)中,我們會(huì)有多套環(huán)境,比如在我本地有dev、test、prod三套環(huán)境,Nacos使用namespace來(lái)進(jìn)行多環(huán)境和多租戶的隔離。Nacos默認(rèn)的namespace是public。

下面是官方對(duì)namespace的描述:

用于進(jìn)行租戶粒度的配置隔離。不同的命名空間下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用場(chǎng)景之一是不同環(huán)境的配置的區(qū)分隔離,例如開(kāi)發(fā)測(cè)試環(huán)境和生產(chǎn)環(huán)境的資源(如配置、服務(wù))隔離等。

可以通過(guò)下圖進(jìn)入命名空間頁(yè)面:

圖片

添加一個(gè)命名空間,如下圖,命名空間ID可以不填,系統(tǒng)會(huì)自動(dòng)生成:

圖片

按照上圖我創(chuàng)建了三個(gè)namespace。這樣在【配置管理】-【配置列表】中添加配置時(shí),就會(huì)出現(xiàn)剛剛配置的namespace,如下圖:

圖片

這里我選擇 dev 進(jìn)行添加配置。如下圖,配置一個(gè)testnamespace=dev 的配置:

圖片

因?yàn)槭褂昧薾amespace,就必須在配置文件bootstrap.properties中指定我們使用了哪個(gè)namespace,比如在dev環(huán)境的bootstrap.properties文件中增加如下配置:

  1. spring.cloud.nacos.config.namespace=ad0738cd-b595-4885-a4e5-03f547d11fa0 

這時(shí)改一下測(cè)試Controller增加下面配置:

  1. @Controller 
  2. @RequestMapping("config"
  3. @RefreshScope 
  4. public class ConfigController { 
  5.  
  6.     @Value("${testnamespace}"
  7.     private String testnamespace; 
  8.  
  9.     @RequestMapping(value = "/getEnv", method = GET) 
  10.     @ResponseBody 
  11.     public String getEnv() { 
  12.         return testnamespace; 
  13.     } 

瀏覽器輸入下面配置,輸出 dev,可見(jiàn) namespace 配置生效了。

  1. http://localhost:8083/config/getEnv 

業(yè)務(wù)隔離

如果不同的業(yè)務(wù)系統(tǒng)需要進(jìn)行配置隔離,比如服務(wù)A、服務(wù)B都有數(shù)據(jù)庫(kù)、redis、mq等相關(guān)配置,配置名稱是一樣的,怎么進(jìn)行隔離呢?

Nacos提供了group進(jìn)行隔離,我們看一下官方描述:

Nacos 中的一組配置集,是組織配置的維度之一。通過(guò)一個(gè)有意義的字符串(如 Buy 或 Trade )對(duì)配置集進(jìn)行分組,從而區(qū)分 Data ID 相同的配置集。當(dāng)您在 Nacos 上創(chuàng)建一個(gè)配置時(shí),如果未填寫配置分組的名稱,則配置分組的名稱默認(rèn)采用 DEFAULT_GROUP 。配置分組的常見(jiàn)場(chǎng)景:不同的應(yīng)用或組件使用了相同的配置類型,如 database_url 配置和 MQ_topic 配置。

這里,我對(duì)serviceA和serviceB做了數(shù)據(jù)庫(kù)配置,如下圖是serviceB的配置:

圖片

配置之后serviceA和serviceB配置列表如下圖:

圖片

這時(shí)serviceA和serviceB需要在bootstrap.properties中指定group,如下是serviceA的配置:

  1. spring.cloud.nacos.config.group=serviceA 

這時(shí)在測(cè)試Controller中增加下面代碼:

  1. @Controller 
  2. @RequestMapping("config"
  3. @RefreshScope 
  4. public class ConfigController { 
  5.  
  6.     @Value("${spring.datasource.max-idle}"
  7.     private String maxIdle; 
  8.  
  9.     @RequestMapping(value = "/getMaxIdle", method = GET) 
  10.     @ResponseBody 
  11.     public String getMaxIdle() { 
  12.         return maxIdle; 
  13.     } 

使用下面url測(cè)試后輸入 10:

  1. http://localhost:8083/config/getMaxIdle 

共享配置如果一個(gè)新的應(yīng)用,想要共享其他應(yīng)用的配置,比如上面serviceA可以共享serviceB的配置,是否可以呢?Nacos是支持配置共享的。

我們創(chuàng)建兩個(gè)共享配置 serviceA.properties 和 serviceB.properties,如下圖:

圖片

其中,serviceA.properties的配置內(nèi)容如下:

  1. spring.datasource.max-idle=10 

serviceB.properties的配置內(nèi)容如下:

  1. spring.datasource.min-idle=5 

我在當(dāng)前的應(yīng)用中共享這兩個(gè)配置,就需要在bootstrap.properties中增加下面的配置:

  1. spring.cloud.nacos.config.shared-configs[0].dataId=serviceA.properties 
  2. spring.cloud.nacos.config.shared-configs[0].group=DEFAULT_GROUP 
  3. spring.cloud.nacos.config.shared-configs[0].refresh=true 
  4.  
  5. spring.cloud.nacos.config.shared-configs[1].dataId=serviceB.properties 
  6. spring.cloud.nacos.config.shared-configs[1].group=DEFAULT_GROUP 
  7. spring.cloud.nacos.config.shared-configs[1].refresh=true 

啟動(dòng)應(yīng)用后,在瀏覽器輸入下面url,頁(yè)面響應(yīng) 10:

  1. http://localhost:8083/config/getMaxIdle 

在瀏覽器輸入下面url,頁(yè)面響應(yīng) 5:

  1. http://localhost:8083/config/getMinIdle 

注意:共享配置要加.properties或者.yaml的后綴,否則訪問(wèn)不到。

總結(jié)

今天主要介紹了Nacos中配置中心的使用,包括基于namespace實(shí)現(xiàn)的多環(huán)境和多租戶的配置,基于group實(shí)現(xiàn)的業(yè)務(wù)隔離,以及共享配置??梢钥吹絅acos的配置中心功能還是比較完備的,可以很好地滿足業(yè)務(wù)系統(tǒng)使用。

 

責(zé)任編輯:姜華 來(lái)源: 程序員jinjunzhu
相關(guān)推薦

2021-07-14 09:00:00

JavaFX開(kāi)發(fā)應(yīng)用

2022-12-07 08:42:35

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機(jī)

2011-02-22 17:42:26

2021-01-19 09:06:21

MysqlDjango數(shù)據(jù)庫(kù)

2020-05-15 08:07:33

JWT登錄單點(diǎn)

2021-03-12 10:01:24

JavaScript 前端表單驗(yàn)證

2022-07-22 12:45:39

GNU

2021-12-15 08:49:21

gpio 子系統(tǒng)pinctrl 子系統(tǒng)API

2022-10-30 10:31:42

i2ccpuftrace

2022-01-08 20:04:20

攔截系統(tǒng)調(diào)用

2022-03-14 14:47:21

HarmonyOS操作系統(tǒng)鴻蒙

2023-04-26 12:46:43

DockerSpringKubernetes

2022-07-27 08:16:22

搜索引擎Lucene

2021-02-26 11:54:38

MyBatis 插件接口

2011-02-22 13:46:27

微軟SQL.NET

2021-12-28 08:38:26

Linux 中斷喚醒系統(tǒng)Linux 系統(tǒng)

2009-06-02 15:38:36

eclipse streclipse開(kāi)發(fā)steclipse str

2010-01-07 14:24:54

Linux防火墻
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)