Alibaba:Nacos配置中心
图
nacos同spring-cloud-config一样,可以作为一个配置中心,统一的来管理配置,可以配置多套环境,各个微服务可以按需到nacos配置中心拉取相关配置,且支持动态刷新

服务端创建配置

图

客户端获取配置

依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

调整启动类获取配置

@SpringBootApplication
public class ProviderApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(ProviderApplication.class, args);
        String userName = applicationContext.getEnvironment().getProperty("user.name");
        String userAge = applicationContext.getEnvironment().getProperty("user.age");
        System.err.println("user name :"+userName+"; age: "+userAge);
    }
}

必须使用bootstrap.properties配置文件来配置Nacos Server地址

spring.application.name=nacos-config
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

同时需要注意,配置的ID需要和服务名称ID一样才有作用,公共的需要指定Data Id

当服务端改动了配置文件后,客户端能马上感知到,原理是客户端会没10毫秒请求一直配置文件的MD5,不一致就会拉取最新的

注意:默认拉取properties文件,如果没有使用该格式配置文件需要指定

spring.cloud.nacos.config.file-extension=yaml

动态感知

使用@value读取后,如果发生改变,是无法改变对应值的,需要在该类上加@RefreshScope注解