使用Nacos作爲配置中心
前面我們已經介紹過濾Nacos是一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺。所以它可以作爲註冊中心和配置中心,作爲註冊中心Nacos可以讓我們靈活配置多種環境的參數,使得項目在打包過程中不需要過多的關注目標環境問題,達到項目一次打包,多處運行的目標。今天我們就來介紹一下如何使用Nacos作爲配置中心。
Demo
第一步:在Nacos管理平臺配置列表菜單選項點擊“+”號新建配置,新建配置之後點擊發布按鈕。
配置規則
-
dataId :格式如下 ${prefix} - ${spring.profiles.active} . ${file-extension}
-
prefix 默認爲 spring.application.name 的值
-
spring.profiles.active 當前環境對應的 profile
-
file-extension 爲配置內容的數據格式,可以通過配置項 spring.cloud.nacos.config.file-extension來配置。 目前只支持 properties 類型。
group 默認DEFAULT_GROUP
當activeprofile 爲空時直接填寫 spring.application.name值即可 默認properties
第二步:新建一個項目(這裏使用之前的nacos-provider),pom.xml加入nacos配置中心依賴。
<!--Nacos註冊中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
第三步:指定配置中心地址。
spring:
application:
name: nacos-provider
cloud:
nacos:
discovery:
server-addr: 192.168.0.127:8848 #註冊中心地址
config:
server-addr: 192.168.0.127:8848 #註冊中心地址
server:
port: 17357
第四步:使用配置中心參數
@SpringBootApplication
@EnableDiscoveryClient
public class NacosProvider {
public static void main(String[] args) {
SpringApplication.run(NacosProvider.class,args);
}
@RestController
@RefreshScope
class ConfigController {
@Value("${config.address}")
private String address;
@GetMapping("/print/address")
public String printAddress(){
return address;
}
}
}
第五步:使用@RefreshScope註解之後可以實時刷新Nacos配置中心修改後的參數值。
注意點:
Nacos配置中心的配置項會覆蓋在項目中相同鍵的配置項。