Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >统一配置中心选型对比

统一配置中心选型对比

作者头像
JadePeng
发布于 2018-09-27 08:17:27
发布于 2018-09-27 08:17:27
4.4K0
举报

整理笔记时发现之前整理的一些东西,分享给大家。

为什么需要集中配置

程序的发展,需要引入集中配置

  • 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……
  • 并且对配置的期望也越来越高,配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……
  • 并且随着采用分布式的开发模式,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,每次投产或者上线新的项目时苦不堪言,因此需要引用配置中心治理。

已有zookeeper、etcd还需要引入吗

  • 之前的音乐服务项目,通过etcd实现了服务的注册与发现,且一些业务配置也存储到etcd中,通过实践我们收获了集中配置带来的优势
  • 但是etcd并没有方便的UI管理工具,且缺乏权限、审核等机制
  • 最重要的是,etcd和zookeeper通常定义为服务注册中心,统一配置中心的事情交给专业的工具去解决。

有哪些开源配置中心

  1. spring-cloud/spring-cloud-config https://github.com/spring-cloud/spring-cloud-config spring出品,可以和spring cloud无缝配合
  2. 淘宝 diamond https://github.com/takeseem/diamond 已经不维护
  3. disconf https://github.com/knightliao/disconf java开发,蚂蚁金服技术专家发起,业界使用广泛
  4. ctrip apollo https://github.com/ctripcorp/apollo/ Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,具备规范的权限、流程治理等特性。

配置中心对别

功能特性

我们先从功能层面来对别

功能点

优先级

spring-cloud-config

ctrip apollo

disconf

备注

静态配置管理

基于file

支持

支持

动态配置管理

支持

支持

支持

统一管理

无,需要github

支持

支持

多环境

无,需要github

支持

支持

本地配置缓存

支持

支持

配置锁

支持

不支持

不支持

不允许动态及远程更新

配置校验

如:ip地址校验,配置

配置生效时间

重启生效,或手动refresh生效

实时

实时

需要结合热加载管理, springcloudconfig需要 git webhook+rabbitmq 实时生效

配置更新推送

需要手工触发

支持

支持

配置定时拉取

支持

配置更新目前依赖事件驱动, client重启或者server端推送操作

用户权限管理

无,需要github

支持

支持

现阶段可以人工处理

授权、审核、审计

无,需要github

支持

现阶段可以人工处理

配置版本管理

Git做版本管理

界面上直接提供发布历史和回滚按钮

操作记录有落数据库,但无查询接口

配置合规检测

不支持

支持(但还需完善)

实例配置监控

需要结合springadmin

支持

支持,可以查看每个配置在哪些机器上加载

灰度发布

不支持

支持

不支持部分更新

现阶段可以人工处理

告警通知

不支持

支持,邮件方式告警

支持,邮件方式告警

依赖关系

不支持

不支持

不支持

配置与系统版本的依赖系统运行时的依赖关系

技术路线兼容性

引入配置中心,需要考虑和现有项目的兼容性,以及是否引入额外的第三方组件。我们的java项目以SpringBoot为主,需要重点关注springboot支持性。

功能点

优先级

spring-cloud-config

ctrip apollo

disconf

备注

SpringBoot支持

原生支持

支持

与spring boot无相关

SpringCloud支持

原生支持

支持

与spring cloud无相关

客户端支持

Java

Java、.Net

java

业务系统侵入性

侵入性弱

侵入性弱

侵入性弱,支持注解及xml方式

依赖组件

Eureka

Eureka

zookeeper

可用性与易用性

引入配置中心后,所有的应用都需要依赖配置中心,因此可用性需要重点关注,另外管理的易用性也需要关注。

功能点

优先级

spring-cloud-config

ctrip apollo

disconf

备注

单点故障(SPOF)

支持HA部署

支持HA部署

支持HA部署,高可用由zookeeper保证

多数据中心部署

支持

支持

支持

配置获取性能

unkown

unkown(官方说比spring快)

配置界面

无,需要通过git操作

统一界面(ng编写)

统一界面

最终选择

综上,ctrip applo是较好的选择方案,最终选择applo。

  • 支持不同环境(开发、测试、生产)、不同集群
  • 完善的管理系统,权限管理、发布审核、操作审计
  • SpringBoot集成友好 ,较小的迁移成本
  • 配置修改实时生效(热发布)
  • 版本发布管理

部署情况

  • 管理Web:http://config.***.com/
  • 三个环境MetaServer:
    • Dev: config.devmeta.***.com
    • Test: config.testmeta.***.com
    • PRO: config.prometa.***.com
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微服务之SpringCloud架构第六篇(上)——配置中心(Apollo)
引入配置中心,需要考虑和现有项目的兼容性,以及是否引入额外的第三方组件。我们的java项目以SpringBoot为主,需要重点关注springboot支持性。
leehao
2025/02/11
2330
微服务之SpringCloud架构第六篇(上)——配置中心(Apollo)
分布式配置中心选型,为什么选择Apollo?
关于配置的常规方案是将配置信息抽离写入 xml、properties文件中,然后随着应用一块打包发布。如果有开发、测试、预发、生产等多套环境,则通过配置各自独立的文件以区分不同的环境。具备一定的扩展性,但每次配置参数变更都要重新发布应用,灵活性较差。
微观技术
2021/04/30
1.3K1
分布式配置中心选型,为什么选择Apollo?
配置中心化
传统应用打包部署, 会在不同的环境配置不同的包, 如Local环境, Dev环境, 测试环境, UAT环境, 生产环境分别制作不同的发布包,
louiezhou001
2019/10/11
1.3K0
微服务架构-实现技术之具体实现工具与框架8:Spring Cloud Config原理与注意事项
注:主要只做理论性的总结与分析,相关实战代码会在后面的博客中和github中逐步增加。
全栈程序员站长
2022/07/22
6880
微服务架构-实现技术之具体实现工具与框架8:Spring Cloud Config原理与注意事项
认识配置中心
配置中心是集中管理配置信息的组件。它通常提供配置变更、配置推送、历史版本版本管理、灰度发布、配置变更审计等功能。通过这些功能可以降低分布式系统中管理配置信息的成本,降低因错误的配置信息变更带来可用性下降甚至发生故障的风险。
星哥玩云
2022/09/15
1.5K0
认识配置中心
快速学习-Apollo配置中心搭建
Apollo (阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
cwl_java
2020/07/16
3.1K0
springcloud学习手册-市面主流分布式配置中心框架汇总
导读 | 本节主要是汇总一下,目前市面上主流应用的一些分布式配置中心框架。重点介绍下这4个框架,它们分别是: Apollo(携程 阿波罗) 、Spingcloud Config (springcloud)、Disconf (百度)、Diamod (阿里) 1 Apollo(阿波罗) https://github.com/ctripcorp/apollo Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并
程序源代码
2018/03/09
1.3K0
springcloud学习手册-市面主流分布式配置中心框架汇总
微服务架构中配置中心的选择,Apollo值得拥有
目前公司内部微服务架构基础设施建设中,技术选型以Spring Cloud技术为主,也被大家俗称作“全家桶”。
肉眼品世界
2021/01/25
1.5K0
微服务架构中配置中心的选择,Apollo值得拥有
架构设计之微服务配置中心选型
在撰写这篇技术选型的文章之前,是比较犹豫的。因为,以其中一个开源项目开发者的身份,去写一篇三个开源项目的对比,即便很克制的去客观的比较,也很难有信服力。这就像,既是参赛选手,又想做裁判,观众肯定是不买账的。
Bug开发工程师
2019/05/16
3.4K0
架构设计之微服务配置中心选型
Spring Cloud 如何选择分布式配置中心
微服务必备的几样武器有了,才能独闯武林, 有哪几样呢? 注册中心(eureka, consul, zk, etcd) 配置中心 (Spring Cloud Config, disconf ) API网关 (Spring Cloud zuul, kong) 熔断器 (hystrix) 链路追踪 (sleuth) 统一日志管理 (ELK) 自动化部署 (jenkins + Docker) 今天我们主要讲下同样是非常重要的一项,配置中心,当然官方提供的解决方案就是Spring Cloud Config 它支持配置
猿天地
2018/04/03
1.1K0
主流微服务配置中心对比
如果您对微服务配置中心的功能不是很了解,可以看下以下的背景介绍,若比较熟悉可以直接跳过。
java思维导图
2019/05/14
4.2K0
分布式之配置中心
只需要自己实现一个 apollo-client 即可,当配置发生更新时,拉取最新配置信息,然后将配置信息处理成软件所需的配置格式。
新亮
2021/09/29
2890
Spring Cloud生态的配置服务器最全对比贴
本文从社区活跃度、产品特点、成功案例、产品缺点等维度,全方位对比Spring Cloud Config、Apollo、Nacos、Disconf、Spring Cloud Consul、Spring Cloud Zookeeper等几款Spring Cloud生态的配置服务器,帮助你选择合适的配置服务器。
用户1516716
2019/07/10
9480
Nacos配置中心落地与实践
目前,我们公司各团队配置中心使用各异,电商使用的是 Spring Cloud Config,支付使用的是 Apollo,APP 团队使用的是 Apollo+Nacos。为了更好地应对公司业务的发展,统一基础设施技术栈必不可少。
杨同学technotes
2022/12/01
8720
分布式服务一篇概览
分布式服务开发复杂于服务间交互,协调,治理等。服务的复杂性由应用本身转移到了网络交互层。
WindWant
2023/05/26
1930
分布式服务一篇概览
Apollo中间件技术:从入门到精通
在Java开发的微服务架构中,配置管理是一个不可或缺的重要环节。随着服务数量的增加和部署环境的复杂化,传统的手动配置管理方式已难以满足需求。Apollo作为一款开源的分布式配置中心,凭借其强大的功能和灵活的架构,成为了众多Java开发者的首选。本文将带你全面了解Apollo中间件技术,从入门到精通,让你轻松掌握Apollo的使用。
小马哥学JAVA
2024/12/28
2900
快速学习-Apollo从入门到精通
Apollo (阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
cwl_java
2020/08/04
1.6K0
快速学习-Apollo从入门到精通
干货 | 携程开源配置中心Apollo的设计与实现
作者简介 宋顺,携程框架研发部技术专家。2016年初加入携程,主要负责中间件产品的相关研发工作。毕业于复旦大学软件工程系,曾就职于大众点评,担任后台系统技术负责人。 1、What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制…… 在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。 A
携程技术
2018/03/16
3.3K0
干货 | 携程开源配置中心Apollo的设计与实现
Apollo配置中心,配置也可以“智能”
Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
java技术爱好者
2020/10/30
2.4K0
Apollo配置中心,配置也可以“智能”
分布式配置中心之Apollo实战
微服务架构下,服务的数量视项目的规模大小而定,但数量肯定最少有十几二十个,这些微服务有时候共用一些配置,修改一个配置,这诸多服务都要跟着一起改。任务繁多,而且容易出错。
行百里er
2021/07/14
1.6K0
相关推荐
微服务之SpringCloud架构第六篇(上)——配置中心(Apollo)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档