以下视频将为你介绍 TSF Consul 的配置管理功能:
注意:说明:
注意:当前 TSF-consul 已经转为内测,如果你有服务注册配置治理的需求,请你购买 Polaris(北极星)。
为了解决分布式环境下多台服务实例的配置统一管理问题,TSF consul 提供了配置管理功能。
一、配置类型
·应用配置:生效在单个应用上面,发布的范围是部署组维度,属于 TSF 平台上的配置。
·全局配置:生效在整个集群或者命名空间,发布的范围是命名空间维度,属于 TSF 平台上的配置。
·本地配置:是应用程序在代码工程中创建的配置(如 application.yml 和 bootstrap.yml)。
·文件配置:支持用户通过控制台将配置下发到服务器的指定目录。应用程序通过读取该目录下的配置文件实现特殊的业务逻辑。
| 配置类型 | 功能说明 | 适用应用类型 | 关联对象 | 发布对象 |
| 应用配置 | 动态更新 Spring Cloud,Dubbo 或者 Go-gRPC 应用内的配置 | Spring Cloud,Dubbo 或 Go-gRPC 应用 | 应用 | 应用关联的部署组 |
| 全局配置 | 动态更新 Spring Cloud,Dubbo 或者 Go-gRPC 应用内的配置 | Spring Cloud,Dubbo 或 Go-gRPC 应用 | 命名空间 | 命名空间 |
| 文件配置 | 将文件配置发布到实例指定路径,发布成功后触发回调 | 任何应用类型 | 应用 | 应用关联的部署组 |
注意:说明:
注意:原生应用与 Mesh 应用不支持应用配置和全局配置。
二、配置模板
为了方便用户保存常用的配置信息,TSF 提供了 Ribbon、Hystrix、Zuul 等 Spring Cloud 组件的配置模板。用户可以基于已有的配置模板进行修改,也可以自定义编写配置模板。
用户可以基于配置模板来创建应用配置或者全局配置。
三、配置导出
TSF 支持配置导出功能,帮助你更加地方便管理配置。
四、应用配置、全局配置、本地配置优先级
应用配置和全局配置属于 TSF 平台上的配置(下面称为远程配置),本地配置是应用程序在代码工程中创建的配置(例如 application.yml 和 bootstrap.yml)。应用配置和全局配置的根本区别在于配置发布的范围,应用配置发布的范围是部署组维度,全局配置发布的范围是命名空间维度。
配置优先级:应用配置 > 全局配置 > 本地配置。
当用户通过 TSF 控制台发布远程配置,微服务应用会按照配置的 key 来进行合并操作。例如,微服务应用本地application.yml配置文件的内容中包括:
# application.ymlusername: test_user1feature.status: falsefeature.color: red
TSF 平台上远程配置的内容如下:
# TSF 应用配置或者全局配置username: test_user2feature.status: true
当远程配置的发布范围包含了上面的服务实例,微服务应用会将远程配置和本地配置按照key进行合并,最终生成的配置如下:
# 远程配置与本地配置合并结果username: test_user2feature.status: truefeature.color: red
五、多份应用配置发布到同一个部署组
TSF 支持多份应用配置发布到同一个部署组,多份配置会根据发布时间的先后顺序以key进行合并。例如,应用 A 有两个应用配置项:config-1、config-2。
·config-1的配置内容:
# config-1username: test_user1feature.status: false
·config-2的配置内容:
# config-2username: test_user2feature.color: red
·config-1和config-2先后发布到部署组group,会按照key进行合并。
# config-1 与 config-2 合并结果username: test_user2feature.status: falsefeature.color: red