快速开始

Spring Cloud SOFA DRM 可为应用带来外部化配置支持。它依托于 SOFA DRM 分布式配置管理(Distributed Resource Management),提供高实时性、高一致性、动态下发的配置管理能力。您无需重启应用,即可通过 DRM 动态配置服务对应用中的配置进行动态刷新。

在项目工程中添加 Spring Cloud SOFA DRM 依赖:

说明

不要配置版本,版本由 dependencyManagement 控制。

<dependency>
     <groupId>com.alipay.cloud</groupId>
     <artifactId>spring-cloud-starter-sofa-drm</artifactId>
</dependency>

Bootstrap 模式

  1. 引入依赖。

    Spring Cloud Hoxton 及以前版本,默认采用 Bootstrap 模式进行配置加载,在 Spring Cloud 2020 版本之后,如果还希望采用 Bootstrap 模式进行配置管理,则需要在项目中引入依赖。

    <dependency>
         <groupId>com.alipay.cloud</groupId>
         <artifactId>spring-cloud-starter-bootstrap</artifactId>
    </dependency>
  2. 配置bootstrap.properties文件。

    Bootstrap 模式需要在项目中配置bootstrap.properties(也可以使用 YAML 格式)文件,请将其放在application.properties(或 application.yml)文件同级目录。写入以下信息:

    spring.application.name={your project name}
    spring.cloud.sofa.instanceid={sofa middleware instance id}
    spring.cloud.sofa.acvip.endpoint={sofa acvip lb address}
    spring.cloud.sofa.mw.access={sofa middleware ak, optional}
    spring.cloud.sofa.mw.secret={sofa middleware sk, optional}

    以上配置说明请参考添加公共配置。项目中启用了 Bootstrap 动态配置,且在bootstrap.properties配置了以上信息,则application.properties中无需重复配置。

  3. 添加 RefreshScope 注解。

    在项目中,使用 Spring Cloud 的编程模型,对于需要进行动态配置变更的 Bean 添加 RefreshScope 注解。

    image

  4. 新增动态配置。

    配置完毕后,在微服务控制台配置以下参数。配置方式请参见 新增动态配置

    image

  5. 推送动态配置。

    推送动态配置的操作请参见推送动态配置。在 “推送值” 文本框中填写properties格式的配置,点击推送配置,即可修改应用配置。

    image

    添加了 RefreshScope 注解的 Bean 中的 @Value 属性会自动更新。

Config Data 模式

  1. 配置application.yml文件。

    在 Spring Cloud 2020 版本之后,默认使用 Config Data 模式进行配置加载。如果项目中没有引用spring-cloud-starter-bootstrap,则会自动启用该模式。该模式无需再额外配置bootstrap.properties文件,只需要在application.yml(也可以是 properties 格式,以下以 YAML 格式为例) 中配置 spring:

    spring:
      application:
        name: {your project name}
      config:
        import: "drm:"

    在配置中同样要加上金融云中间件的公共配置,详情请参见添加公共配置

  2. 在应用中对需要进行动态配置的属性添加 RefreshScope 和 Value 注解。

    这部分与 Bootstrap 模式完全一致。

  3. 添加动态配置。

    说明

    此处配置的类标识与 Bootstrap 模式不同,没有携带 properties 后缀,请参考配置说明了解配置细节。

  4. 推送配置。

    配置 Bootstrap 模式一致,新建 configuration 属性并通过 properties 格式进行配置即可。