小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
Spring Cloud Nacos Config
Spring Cloud Config 是Spring Cloud生态中的统一配置管理的组件,它为外部化配置提供了服务端和客户端支持。包含Config Server和Config Client 两个部分,而Spring Cloud Alibaba Nacos Config 是Config Server和Client的替代方法。
Nacos Config基本应用
在Spring Cloud 生态下Nacos Config的使用步骤:
- 创建SpringBoot项目,添加spring-cloud-starter依赖
- 添加nacosconfig maven依赖
创建bootstrap.properties文件,并在bootstrap.properties中添加Nacos Server的连接地址
配置说明
- spring.cloud.nacos.config.prefix:在nacos配置中心上的Data ID 的前缀
- spring.cloud.nacos.config.server-addr:设置nacos配置中心地址
注意点:
以上的配置项需要放在bootstrap.yml文件中,在Spring Boot中有两种以上下搵配置,一种是bootstrap,另外一种是application.bootstrap是应用程序的父上下文,所以bootstrap加载优于application,在加载远程配置之前,需要读取Nacos配置中心的服务地址信息,因此Nacos服务地址等属性配置需要放在bootstrap.yml文件中。
在 Nacos 控制台中创建如下配置文件:
在启动类中,读取配置中心的数据。
@SpringBootApplication
@Slf4j
public class SpringCloudNacosConfigApplication {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication.run(SpringCloudNacosConfigApplication.class, args);
String info = applicationContext.getEnvironment().getProperty("info");
log.info("info:{}",info);
}
}
启动项目后控制台输出如下结果,标识配置加载成功。
动态更新配置
配置中心必须支持配置的动态更新,在配置中心上修改配置后,应用能感知值的变化。可通过以下改动达到动态更新的实现
@SpringBootApplication
@Slf4j
public class SpringCloudNacosConfigApplication {
public static void main(String[] args) throws InterruptedException {
ConfigurableApplicationContext applicationContext = SpringApplication.run(SpringCloudNacosConfigApplication.class, args);
while(true){
String info = applicationContext.getEnvironment().getProperty("info");
log.info("info:{}",info);
Thread.sleep(3000);
}
}
}
通过一个while循环不断读取info属性,当info属性发生更新时,控制台输出以下日志,监听到数据更新事件,并输出最新的配置信息。