跳到主要内容

Spring Cloud 之 Config分布式配置;server,client配置

Config分布式配置

在分布式微服务系统中,几乎所有服务的运行都离不开配置文件的支持,这些配置文件通常由各个服务自行管理,以 properties 或 yml 格式保存在各个微服务的类路径下,如 application.propertiesapplication.yml

1、 传统配置方式:;

配置信息分散到系统各个角落方式,配置文件或者在代码中;

2、 集中式配置中心:;

将应用系统中对配置信息的管理作为一个新的应用功能模块,进行集中统一管理,并且提供额外功能;

3、 分布式配置中心:;

在分布式、微服务架构中,独立的配置中心服务

传统配置方式 将配置文件散落在各个服务中的管理方式,存在以下问题:

1、管理难度大:配置文件散落在各个微服务中,难以管理。

2、安全性低:配置跟随源代码保存在代码库中,容易造成配置泄漏。

3、时效性差:微服务中的配置修改后,必须重启服务,否则无法生效。

4、局限性明显:无法支持动态调整,例如日志开关、功能开关。

为了解决这些问题,通常我们都会使用配置中心对配置进行统一管理。Spring Cloud 开发了自己的分布式配置中心,那就是 Spring Cloud Config。

市面上开源的配置中心

Apollo(阿波罗):携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景;

diamond : 淘宝开源的持久配置中心,支持各种持久信息(比如各种规则,数据库配置等)的发布和订阅;(更新稍微落后一点)

XDiamond:全局配置中心,存储应用的配置项,解决配置混乱分散的问题,名字来源于淘宝的开源项目diamond,前面加上一个字母X以示区别。

Qconf: 奇虎360内部分布式配置管理工具,用来替代传统的配置文件,使得配置信息和程序代码分离,同时配置变化能够实时同步到客户端,而且保证用户高效读取配置,这使的工程师从琐碎的配置修改、代码提交、配置上线流程中解放出来,极大地简化了配置管理工作;

Disconf:百度的分布式配置管理平台,专注于各种分布式系统配置管理的通用组件和通用平台, 提供统一的配置管理服务