Nacos配置中心

Nacos除了可以做注册中心,🔗Nacos下载和注册中心教程,同样可以做配置管理来使用。

一、统一配置管理

当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就显得十分的不方便,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。
nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新(更新非初始化应用配置可以不重启项目)

二、Nacos配置中心入门

Nacos中添加配置

在Nacos服务端创建一个配置,如下所示:
1、
在这里插入图片描述
2、在这里插入图片描述
测试要拉去的配置

pattern:
 dateformat: yyyy-MM-dd HH:mm:ss

微服务集成配置中心

1、在要使用该配置的模块添加Nacos配置中心的依赖
<!-- nacos作为配置中心时所对应的依赖 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2、在使用该配置的模块,配置文件中配置 Nacos Config 地址并引入服务配置
# 配置数据库的连接信息
spring:
  cloud:
    nacos:
      config:
        server-addr:  你的ip:端口
  config:
    import:
      - nacos:spzx-cloud-order-dev.yml # 冒号分割不需要加空格 , 可以引入多个配置,写了这句话就相当于把
#pattern:
 #dateformat: yyyy-MM-dd HH:mm:ss  拉去到了配置文件中
3 读取自定义配置
@Value (读取的配置文件只在一个类中使用时或者单个属性,常用@Value)

在这里插入图片描述

@ConfigurationProperties( 读取的配置文件需要在多个类中使用时,或者批量的属性,可以随时注入使用)

定义一个实体类,并在启动类开启

@ConfigurationProperties(prefix = "pattern") 
//使用ConfigurationProperties需要在启动类中开启
//@EnableConfigurationProperties(value = {PatternProperties.class})
@Data  //提供get方法
public class PatternProperties {
    private String dateformat;
}
  • 使用
    在这里插入图片描述

三、配置热更新

我们最终的目的,是修改Nacos中的配置后,微服务中无需重启即可让配置生效,也就是配置热更新。实现配置的热更新有两种方式:

方式一:在@Value注入的变量所在类上添加注解**@RefreshScope**

方式二:通过实体类,配合@ConfigurationProperties注解读取配置信息,自动支持热更新 .把@RefreshScope加在配置类上
在这里插入图片描述

四、配置优先级

如果在application.yml文件中和Nacos配置中心中都定义了相同的配置内容,那么哪一个配置的优先级较高呢?
优先级顺序:Nacos配置中心的配置> application.yml

更多推荐