Spring Cloud 之 Config分布式配置;server,client配置
Config分布式配置
在分布式微服务系统中,几乎所有服务的运行都离不开配置 文件的支持,这些配置文件通常由各个服务自行管理,以 properties 或 yml 格式保存在各个微服务的类路径下,如 application.properties 或 application.yml 等
1、 传统配置方式:;
配置信息分散到系统各个角落方式,配置文件或者在代码中;
2、 集中式配置中心:;
将应用系统中对配置信息的管理作为一个新的应用功能模块,进行集中统一管理,并且提供额外功能;
3、 分布式配置中心:;
在分布式、微服务架构中,独立的配置中心服务
传统配置方式 将配置文件散落在各个服务中的管理方式,存在以下问题:
1、管理难度大:配置文件散落在各个微服务中,难以管理。
2、安全性低:配置跟随源代码保存在代码库中,容易造成配置泄漏。
3、时效性差:微服务中的配置修改后,必须重启服务,否则无法生效。
4、局限性明显:无法支持动态调整,例如日志开关、功能开关。
为了解决这些问题,通常我们都会使用配置中心对配置进行统一管理。Spring Cloud 开发了自己的分布式配置中心,那就是 Spring Cloud Config。
市面上开源的配置中心
Apollo(阿波罗):携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景;
diamond : 淘宝开源的持久配置中心,支持各种持久信息(比如各种规则,数据库配置等)的发布和订阅;(更新稍微落后一点)
XDiamond:全局配置中心,存储应用的配置项,解决配置混乱分散的问题,名字来源于淘宝的开源项目diamond,前面加上一个字母X以示区别。
Qconf: 奇虎360内部分布式配置管理工具,用来替代传统的配置文件,使得配置信息和程序代码分离,同时配置变化能够实时同步到客户端,而且保证用户高效读取配置,这使的工程师从琐碎的配置修改、代码提交、配置上线流程中解放出来,极大地简化了配置管理工作;
Disconf:百度的分布式配置管理平台,专注于各种分布式系统配置管理的通用组件和通用平台, 提供统一的配置管理服务