欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringCloud Alibaba-Nacos配置中心测试

程序员文章站 2022-06-12 13:45:53
...

一. 使用配置中心的目的

可以实现热部署,对于修改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
    SpringCloud Alibaba-Nacos配置中心测试
    SpringCloud Alibaba-Nacos配置中心测试

  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配置文件中都配置了相同的项,优先使用配置中心的配置。

原文资料: https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/readme-zh.md

三、核心概念

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

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