nacos配置管理

统一配置管理
配置热更新
多环境配置共享

统一配置管理:

1.Nacos中添加配置信息:

nacos配置管理_第1张图片

2.在弹出表单中填写配置信息:

nacos配置管理_第2张图片

配置获取的步骤如下:先获取nacos中的配置文件,再读取本地配置文件,nacos中的配置配置文件等级高于本地配置文件。

nacos配置管理_第3张图片 

3.引入Nacos的配置管理客户端依赖: 

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        

4.resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高application.yml,并作出如下配置。

spring:
  application:
    name: userservice # 服务名
  profiles:
    active: dev # 环境
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      config:
        file-extension: yaml # 文件后缀名
      discovery:
        cluster-name: CQ # 集群名称,这代指重庆

将配置交给Nacos管理的步骤

Nacos 中添加配置文件
在微服务中引入 nacos config 依赖
在微服务中添加 bootstrap.yml ,配置 nacos 地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去 nacos 读取哪个文件

配置自动刷新 

Nacos中的配置文件变更后,微服务无需重启就可以感知。不过需要通过下面两种配置实现。

配置自动刷新有两种方式:

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

@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {

    @Value("${pattern.dateformat}")
    private String dateformat;

    @GetMapping("/now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patterProperties.getDateformat()));
    }
}

二:使用@ConfigurationProperties注解


@Data
@Component
@ConfigurationProperties("pattern")
public class PatterProperties {
    private String dateformat;
}

Nacos配置更改后,微服务可以实现热更新,两种方式:

通过 @Value 注解注入,结合 @RefreshScope 来刷新
通过 @ConfigurationProperties 注入,自动刷新

注意事项:

不是所有的配置都适合放到配置中心,维护起来比较麻烦
建议将一些关键参数,需要运行时调整的参数放到 nacos 配置中心,一般都是自定义配置

多环境配置共享

微服务启动时会从nacos读取多个配置文件:

l [spring.application.name]-[ spring.profiles.active ]. yaml ,例如: userservice-dev.yaml
l [spring.application.name]. yaml ,例如: userservice.yaml

无论profile如何变化,[spring.application.name].yaml这个文件一定会加载,因此多环境共享配置可以写入[spring.application.name].yaml这个文件。

nacos配置管理_第4张图片

微服务会从nacos读取的配置文件:

1.[ 服务名 ]-[ spring.profile.active ]. yaml ,环境配置
2.[ 服务名 ]. yaml ,默认配置,多环境共享

优先级:

        [服务名]-[环境].yaml >[服务名].yaml > 本地配置

 

 

你可能感兴趣的:(微服务,java,spring,cloud,spring,boot,微服务)