介绍几种 Nacos 常用的配置, 如统一配置管理的步骤, 如何配置自动刷新及多环境配置优先级问题.
Nacos 配置管理
⚽️ 统一配置管理
步骤一: 在 Nacos 中添加配置信息, 如添加时间格式的配置内容;
步骤二: 获取统一配置管理;
第一步: 在providerservice 的 pom.xml 中引入 Nacos 的配置管理客户端依赖;
<!--nacos配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.8.RELEASE</version>
</dependency>
第二步: 在providerservice 中的 resource 目录添加 bootstrap.yml 文件, 此文件为引导文件, 优先级高于 application.yml; 主要包括的内容: 当前环境, 服务名称, 文件后缀名, 这些都决定了启动时 nacos 要读取哪个文件;
第三步: 测试, 将 pattern.dateformat 属性注入到 providerController 中做测试;
测试后发现格式和配置内容中的格式一致,配置成功(如果不成功可以重启一下 nacos 试一下).
总结步骤如下:
⚽️⚽️配置自动刷新
Nacos 配置文件改变后, 微服务需要重启才可以实现, 但是如果配置了自动刷新就不需要再进行重启操作了.
方式一: 在 providerController 所在类添加注解 @RefreshScope, 也就是在 @Value 注入的变量所在类上添加此注解;
方式二: 使用 @ConfigurationProperties; 在 config 包中添加 PatternProperties 类;
作用: 将配置文件中配置的每一个属性的值映射到这个组件中,告诉SpringBoot 将本类中的所有属性和配置文件中相关的配置进行绑定; 参数 prrefix = “pattern” : 将配置文件中的 person 下面的所有属性一一对应.
注意事项:
- 不是所有的配置都适合放在配置中心, 毕竟维护起来可能会比较麻烦;
- 建议将一些关键参数, 需要运行时调整的参数放到 nacos 配置中心, 一般都是自定义配置.
⚽️⚽️⚽️ 多环境配置优先级
微服务启动时会从 nacos 中读取多个配置文件, 如上面我们自行配置的 providerservice-dev.yaml 或者是 providerservice.yaml; 当然无论 profile 如何变化, [spring.applicaiton.name].yaml 一定会被加载, 因此多环境共享配置可以写入到这个文件中;