SpringCloud Alibaba-Nacos配置中心测试

一. 使用配置中心的目的

可以实现热部署,对于修改application.yml中的配置数据,不需要重启服务即可读取到最新的修改后的数据。

二. 步骤

  1. 修改 pom.xml 文件,引入 Nacos Config Starter
<dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 </dependency>
  1. 在 /src/main/resources/下增加bootstrap.properties 配置文件,用于配置 Nacos Config 元数据
spring.application.name=微服务名
 spring.cloud.nacos.config.server-addr=127.0.0.1:8848
  1. 给配置中心添加一个叫gulimall-coupon.properties的数据集(Data Id),并添加上配置信息。命名是默认规则:应用名.properties
  2. 完成上述步骤后,应用会从 Nacos Config 中获取相应的配置
  3. 动态获取配置

(1)@RefreshScope:放在Controller类上,用于动态获取并刷新配置

@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;
    @Value("${coupon.user}")
    private String userName;
    @Value("${coupon.age}")
    private String age;


}

(2)@Value("${配置项}"):获取到配置数据

  1. 配置完成,启动项目进行测试。

注意:如果配置中心和当前应用的application.yml配置文件中都配置了相同的项,优先使用配置中心的配置。

三、核心概念

  1. 命名空间 用于配置隔离。不同的命名空间下,可以存在相同的Group或Data ID的配置,namespace的常用场景之一是不同环境的配置的区分隔离。eg: 开发、测试、生产环境的隔离等。
  2. 配置集 一组相关或不相关的配置项的集合称为配置集。在系统中,一个配置文件通常就是一个配置集,包含了系统各个方面的配置。例如:一个配置集可能包含了数据源、线程池、日志级别等配置项。
  3. 配置集ID(类似文件名) Nacos中的某个配置集的ID。Data ID通常用于组织划分系统的配置集。
  4. 配置分组 默认所有的配置集都属于:DEFAULT_GROUP; Nacos中的一组配置集

在微服务架构中,可以让每个微服务创建自己的命名空间,然后在各自的命名空间中使用分组来区分环境(dev、test、prod)

经验分享 程序员 微信小程序 职场和发展