從Nacos配置中心讀取配置信息


1. 項目中引入依賴

  要從nacos中讀取配置,需要引入相關依賴。

1 <dependency>
2   <groupId>com.alibaba.cloud</groupId>
3    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
4 </dependency>

 

2. 在nacos中配置文件

在nacos的配置列表中添加相關文件。

添加好配置后,對應上圖,有幾個信息比較關鍵:

  1. namespace,命名空間id。命名空間可在左側菜單欄的命名空間中管理。
  2. dataId,相當於文件名。
  3. group,配置分組信息。

有了這三個參數,以及nacos服務的服務器地址,接下來就可以定位並讀取配置文件中的內容。

 

3. 讀取配置信息.  方法1:使用nacos提供的Java SDK

 1    public static final String SERVER_ADDR = "127.0.0.1:8848";
 2     public static final String TEST_NAMESPACE = "5f86c5a7-3bf1-4108-966f-c25ebebf7803";
 3 
 4     /**
 5      * 使用NacosFactory 從nacos配置中心獲取城市編碼列表
 6      * @return
 7      */
 8     @SneakyThrows
 9     @GetMapping("getCityCodeListByNacosFactory")
10     public JSONArray getCityCodeListByNacosFactory() {
11         Properties properties = new Properties();
12         // nacos服務器地址,127.0.0.1:8848
13         properties.put(PropertyKeyConst.SERVER_ADDR, SERVER_ADDR);
14         // 配置中心的命名空間id
15         properties.put(PropertyKeyConst.NAMESPACE, TEST_NAMESPACE);
16         ConfigService configService = NacosFactory.createConfigService(properties);
17         // 根據dataId、group定位到具體配置文件,獲取其內容. 方法中的三個參數分別是: dataId, group, 超時時間
18         String content = configService.getConfig("CityCodeList", "DEFAULT_GROUP", 3000L);
19         // 因為我的配置內容是JSON數組字符串,這里將字符串轉為JSON數組
20         return JSONUtil.parseArray(content);
21     }

 

 使用NacosFactory提供的方法,通過服務器地址serverAddr、命名空間id namespace、dataId、group定位並讀取配置文件中的內容。

 參考官方文檔:Nacos Java SDK 獲取配置

 

4. 讀取配置信息.  方法2:使用nacos提供的Open API

 1     public static final String SERVER_ADDR = "127.0.0.1:8848";
 2     public static final String TEST_NAMESPACE = "5f86c5a7-3bf1-4108-966f-c25ebebf7803";
 3 
 4     /**
 5      * 使用nacos的OPEN API 讀取配置中心的配置
 6      * @return
 7      */
 8     @GetMapping("getCityCodeListByNacosOpenAPI")
 9     public JSONArray getCityCodeListByNacosOpenAPI() {
10         Map<String, Object> paramMap = new HashMap<>(3);
11         // 租戶信息,對應nacos命名空間id字段
12         paramMap.put("tenant", TEST_NAMESPACE);
13         // dataId
14         paramMap.put(Constants.DATAID, "CityCodeList");
15         // group
16         paramMap.put(Constants.GROUP, "DEFAULT_GROUP");
17         // url: http://127.0.0.1:8848/nacos/v1/cs/configs
18         String content = HttpUtil.get(SERVER_ADDR + "/nacos" + Constants.CONFIG_CONTROLLER_PATH, paramMap);
19         // 因為我的配置內容是JSON數組字符串,這里將字符串轉為JSON數組
20         return JSONUtil.parseArray(content);
21     }

調用nacos提供的Open API接口,發送get請求,獲取配置文件中的內容。

參考官方文檔:Nacos Open API 獲取配置

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM