配置管理概述

最近更新时间: 2024-10-17 17:10:00

配置类型

配置类型 功能说明 适用应用类型 关联对象 发布对象
【应用配置】 动态更新 Spring Cloud 或者 Dubbo 应用内的配置 Spring Cloud 或 Dubbo 应用 应用 应用关联的部署组
【全局配置】 动态更新 Spring Cloud 或者 Dubbo 应用内的配置 Spring Cloud 或 Dubbo 应用 命名空间 命名空间
【文件配置】 将文件配置发布到实例指定路径,发布成功后触发回调 任何应用类型 应用 应用关联的部署组

应用配置、全局配置、本地配置优先级

应用配置和全局配置属于 TSF 平台上的配置(下面称为远程配置),本地配置是应用程序在代码工程中创建的配置(如 application.ymlbootstrap.yml)。应用配置和全局配置的根本区别在于配置发布的范围,应用配置发布的范围是部署组维度,全局配置发布的范围是命名空间维度。

注意:

优先级:应用配置 > 全局配置 > 本地配置

当用户通过 TSF 控制台发布远程配置,微服务应用会按照配置的 key 来进行合并操作。例如,微服务应用本地application.yml配置文件的内容中包括:

# application.yml
username: test_user1
feature.status: false
feature.color: red

TSF 平台上远程配置的内容如下:

# TSF 应用配置或者全局配置
username: test_user2
feature.status: true

远程配置的发布范围包含了上面的服务实例,微服务应用会将远程配置和本地配置按照key进行合并,最终生成的配置如下:

# 远程配置与本地配置合并结果
username: test_user2
feature.status: true
feature.color: red

多份应用配置发布到同一个部署组

TSF 支持多份应用配置发布到同一个部署组,多份配置会根据发布时间的先后顺序以key进行合并。例如,应用 A 有两个应用配置项:config-1config-2

config-1的配置内容:

# config-1
username: test_user1
feature.status: false

config-2的配置内容:

# config-2
username: test_user2
feature.color: red

config-1config-2先后发布到部署组group,会按照key进行合并。

# config-1 与 config-2 合并结果
username: test_user2
feature.status: false
feature.color: red