SpringCloud分布式配置中心选型

分布式配置中心解决方案:Spring Cloud Config

基于2.2.1.RELEASE版本,>>>官方文档<<<html

衡量指标:mysql

  • 有靠谱的web管理系统,至少常规的配置参数管理功能,如:修改、删除、新增等
  • 要有比较高服务稳定性
  • 最好能支持分布式,长远考虑有利于扩展
  • 开源,至少有开源版本
  • 有热度,使用和维护的人多,大厂背书
  • 开发语言不能是小众的,最好是主流的语言
  • 部署实施简单,有容器化版本是最好
  • 数据存储和备份支持,能恢复
  • 系统独立性好,不能有太多三方依赖

Vault

Vault是一个有web界面的配置存储和管理工具,成熟现代的商业软件同时有开源的社区版。就这个软件来讲功能齐全,社区热度高持续迭代中。git

Consul

研究Vault时,看到官网有提到相关比较,顺便看了看

Consul不单单是一个服务注册与发现中间件,同时还能提供配置存储管理能力,这一点确实很地道的功能。要是你的服务注册发现正好使用的是consul,推荐直接采用同时做为配置管理,由于consul在高可用、高扩展、存储上能力很是强,不须要过多解释。程序员

Chef

研究Vault时,看到官网有提到相关比较,顺便看了看

自动化服务器配置管理工具,比较适合服务器级别的运维,能够进行脚本模版化运行,是DevOps中运维自动化模块解决方案之一,有开源版本和商业版本。采用Ruby开发,有web界面,不少大型公司在用,社区热度足够。Chef工具的使用,可让运维具有必定的开发能力。github

优质学习资源
https://blog.csdn.net/zhaihai...
https://blog.csdn.net/zzq9005...
https://www.ibm.com/developer...
https://docs.chef.io/web

File System

本地文件系统做为后台存储系统,这种方式在集成上是最简单的,但平常维护工做很不方便。平时学习能够采用,可是生产环境不推荐。redis

Version Control Filesystem

采用VCS(SVN)这样文档版本控制系统,文件存储也是直接放在系统中,依赖系统的文件系统,这种方案太落后直接放弃。spring

AWS S3 & CredHub

这两个都是基于云环境的配置管理框架,或者说是一种实现方案,二者都是很好但不是我此刻研究方向,不深刻。sql

JDBC & Redis

一个是传统关系型数据库,一个是新型内存数据库,都能作到数据持久化、技术对接成本低、适用性广。另外,和大多数公司当前的系统容易对接,相信随便找家公司mysql服务应该有的,redis也是基本互联网公司标配。数据库

采用这两种任意一个都是没啥问题的,也都用一些相应manage client工具能够来维护。做为一个优秀的程序员,这两个方案总以为不完美,最好能在这个基础上开发本身的management。

Git & Github & GitLab

Git是官方默认支持配置管理方案,文档最齐全,同时官方更新支持可靠。官方推荐和公开免费的Github系统集成,考虑到Github毕竟是三方的系统,还在国外,相信没有哪家公司愿意把本身服务的配置信息放到别人公司。安全上就不过关,直接被PASS掉,做为github的本地化方案的gitlab成为了首选。

gitlab也是分为企业版和社区版,支持Web方式管理,企业版是要收费的可是功能更方便。

另外,gitlab社区版源码并不在github上(两家是竞争对手),除了github外,全球第二大代码托管中心就是gitlab了。

社区代码: https://gitlab.com/gitlab-org...

总结推荐

传统大中型公司

目前看下来,通常的互联网企业只能在GitLabVaultJDBCRedis中选择了,传统企业可能更喜欢稳定持续的云方案AWS S3CredHub,可是国内没有云厂商在SpringCloud清单中。相信国内大的云厂商迟早都会有这方便的支持的,毕竟私有云和混合云方向很好。

有必定研发能力互联网公司

研发能力有但不但愿投入太多研发力量的,推荐Gitlab或Vault,直接购去买企业版,省事放心。
研发能力自信的就选Gitlab和Vault开源版本,可以重构并加上本身公司的个性化。开源中间件的自定义开发是有难度的,量力而行,坑不少,可能把你拖死。

小型互联网公司

研发能力不太强的,能够直接Redis或者jdbc,最简单了随便找个开发工程师就能作。


做者:Owen Jia
我的博客: https://blog.shareworld.vip

相关文章
相关标签/搜索