一.分布式配置中心的作用
项目中有需要地方需要动态配置,比如项目名字,类中的变量,还有环境的配置如数据库等一些中间件的ip或端口。通常情况下,我们会用配置文件来定义变量,然后在项目中读取配置文件。但小项目好说,对于项目不同的环境分配不同的属性文件,在打包的时候制定具体的配置文件。
随着业务的发展、微服务架构的升级,服务的数量、程序的配置日益增多(各种微服务、各种服务器地址、各种参数),传统的配置文件方式和数据库的方式已无法满足开发人员对配置管理的要求:
安全性:配置跟随源代码保存在代码库中,容易造成配置泄漏;
时效性:修改配置,需要重启服务才能生效;
局限性:无法支持动态调整:例如日志开关、功能开关;
因此,我们需要配置中心来统一管理配置!把业务开发者从复杂以及繁琐的配置中解脱出来,只需专注于业务代码本身,从而能够显著提升开发以及运维效率。同时将配置和发布包解藕也进一步提升发布的成功率,并为运维的细力度管控、应急处理等提供强有力的支持。
二.方案选型
选择分析
首选为disconf,可支持KV存储以及配置文件形式存储,使用和开发更为简便。并且本身也是基于zookpeer的分布式配置中心开发,方便部署使用,并且支持实时更新通知操作,但是部署相对复杂。
diamond基本可以放弃,一般做KV的存储配置项,做配置文件不是很好的选择。
Spring Cloud Config因为依赖git,使用局限性较大,需要在各个环境中安装git,并且不支持KV存储,功能方面略差于disconf。
---------------------
Disconf是百度开源出来的一款基于Zookeeper的分布式配置管理软件。目前很多公司都在使用,包括滴滴、百度、网易、顺丰等公司。通过简单的界面操作就可以动态修改配置属性,还是很方便的。使用Disconf后发现的一大好处是省却应用很多配置,而且配置可以自动load,实时生效。
Disconf优点总结如下:
部署简单:同一个上线包,无须改动配置,即可在多个环境中上线
部署动态化:更改配置,无需重新打包或重启,即可实时生效
统一管理:提供web平台,统一管理多个环境多个产品的所有配置
---------------
Apollo分布式配置中心部署以及使用 https://blog.csdn.net/z960339491/article/details/80667559
Apollo配置中心介绍 https://blog.csdn.net/qq_34288630/article/details/79460153