成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 前端
今天主要介紹了Nacos中配置中心的使用,包括基于namespace實現的多環境和多租戶的配置,基于group實現的業務隔離,以及共享配置。

[[414641]]

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

新建配置

啟動Nacos服務后,進入注冊中心配置頁面,如下圖:

圖片

點擊上圖中紅框里面的加號,進入新建配置頁面,如下圖:

圖片

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

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

說明如下:

  • prefix:默認是spring.application.name的值,可以通過配置項 spring.cloud.nacos.config.prefix在配置文件中配置。
  • spring.profiles.active即為當前環境對應的profile。

當 spring.profiles.active 為空時,對應的連接符-也將不存在,dataId的拼接格式變成 {file-extension}

file-exetension 為配置內容的文件格式,目前只支持properties和yaml類型,可以通過配置項 spring.cloud.nacos.config.file-extension在配置文件中配置。

這里我創建一個Data ID,內容如下圖:

圖片

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

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

增加下面這個Controller類進行測試:

  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,更改之后輸出也會跟著變化:

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

@RefreshScope這個注解可以讓應用動態刷新配置

多環境

實際開發中,我們會有多套環境,比如在我本地有dev、test、prod三套環境,Nacos使用namespace來進行多環境和多租戶的隔離。Nacos默認的namespace是public。

下面是官方對namespace的描述:

用于進行租戶粒度的配置隔離。不同的命名空間下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用場景之一是不同環境的配置的區分隔離,例如開發測試環境和生產環境的資源(如配置、服務)隔離等。

可以通過下圖進入命名空間頁面:

圖片

添加一個命名空間,如下圖,命名空間ID可以不填,系統會自動生成:

圖片

按照上圖我創建了三個namespace。這樣在【配置管理】-【配置列表】中添加配置時,就會出現剛剛配置的namespace,如下圖:

圖片

這里我選擇 dev 進行添加配置。如下圖,配置一個testnamespace=dev 的配置:

圖片

因為使用了namespace,就必須在配置文件bootstrap.properties中指定我們使用了哪個namespace,比如在dev環境的bootstrap.properties文件中增加如下配置:

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

這時改一下測試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,可見 namespace 配置生效了。

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

業務隔離

如果不同的業務系統需要進行配置隔離,比如服務A、服務B都有數據庫、redis、mq等相關配置,配置名稱是一樣的,怎么進行隔離呢?

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

Nacos 中的一組配置集,是組織配置的維度之一。通過一個有意義的字符串(如 Buy 或 Trade )對配置集進行分組,從而區分 Data ID 相同的配置集。當您在 Nacos 上創建一個配置時,如果未填寫配置分組的名稱,則配置分組的名稱默認采用 DEFAULT_GROUP 。配置分組的常見場景:不同的應用或組件使用了相同的配置類型,如 database_url 配置和 MQ_topic 配置。

這里,我對serviceA和serviceB做了數據庫配置,如下圖是serviceB的配置:

圖片

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

圖片

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

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

這時在測試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測試后輸入 10:

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

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

我們創建兩個共享配置 serviceA.properties 和 serviceB.properties,如下圖:

圖片

其中,serviceA.properties的配置內容如下:

  1. spring.datasource.max-idle=10 

serviceB.properties的配置內容如下:

  1. spring.datasource.min-idle=5 

我在當前的應用中共享這兩個配置,就需要在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 

啟動應用后,在瀏覽器輸入下面url,頁面響應 10:

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

在瀏覽器輸入下面url,頁面響應 5:

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

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

總結

今天主要介紹了Nacos中配置中心的使用,包括基于namespace實現的多環境和多租戶的配置,基于group實現的業務隔離,以及共享配置。可以看到Nacos的配置中心功能還是比較完備的,可以很好地滿足業務系統使用。

 

責任編輯:姜華 來源: 程序員jinjunzhu
相關推薦

2021-07-14 09:00:00

JavaFX開發應用

2025-05-07 00:31:30

2022-12-07 08:42:35

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機

2011-02-22 17:42:26

2021-01-19 09:06:21

MysqlDjango數據庫

2022-07-22 12:45:39

GNU

2020-05-15 08:07:33

JWT登錄單點

2022-10-30 10:31:42

i2ccpuftrace

2021-03-12 10:01:24

JavaScript 前端表單驗證

2021-12-15 08:49:21

gpio 子系統pinctrl 子系統API

2023-04-26 12:46:43

DockerSpringKubernetes

2022-01-08 20:04:20

攔截系統調用

2022-07-27 08:16:22

搜索引擎Lucene

2022-03-14 14:47:21

HarmonyOS操作系統鴻蒙

2011-02-22 13:46:27

微軟SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2021-12-28 08:38:26

Linux 中斷喚醒系統Linux 系統

2010-01-07 14:24:54

Linux防火墻
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美久久一区 | 成人久久网| 在线播放精品视频 | 视频一区二区在线 | 99pao成人国产永久免费视频 | 国产在线a视频 | 97超在线视频 | 91精品国产综合久久精品 | 久久久久无码国产精品一区 | 久久久久久成人 | 超碰在线人人干 | 日韩av在线免费 | 一区二区三区av | 能看的av网站 | 在线观看亚洲专区 | 日韩在线观看 | 日本精品久久 | 免费a网| 在线国产一区 | 二区三区av| 亚洲夜射| 欧美不卡视频 | 亚洲高清一区二区三区 | 国产亚洲成av人片在线观看桃 | 91精品国产一区二区三区 | 精品国产一区二区在线 | 久久一二 | 免费黄色在线观看 | 亚洲色图网址 | 亚洲免费观看 | 亚洲精品久久久久久宅男 | 欧美久久一级特黄毛片 | 日韩一区二区av | 在线观看免费毛片 | 欧美一级在线免费观看 | 久久国产精品久久 | 日韩在线播放一区 | 亚洲一区二区三区视频 | 日韩久久成人 | 国产精品美女久久久久久久网站 | 亚洲精品久久久久久久久久久久久 |