文档章节

关于配置中心调研

阿dai学长
 阿dai学长
发布于 11/12 11:03
字数 1091
阅读 1030
收藏 14

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

概述

随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……

对程序配置的期望值也越来越高:配置修改后实时生效,分环境、分集群管理配置,代码安全、审核机制……

在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。

所以,配置中心应运而生。

环境简介

目前公司使用阿里云管理所有服务,原因是为了降低运维成本——傻瓜式运维。

服务部署使用edas,配置管理使用acm。

调研目的

将所有代码中的基础依赖(如数据库、分布式存储等)相关配置回收到配置中心(acm或其他开源工具)管理,提升安全性,使资源可复用,减少因版本差异带来的开发工作量。

方案比较

方案 优点 缺点 备注
edas-acm 运维介入少,便于维护 扩容不方便,每次扩容都要重新为ecs实例单独授权,授权期间扩容实例服务不可用(4xx、5xx) edas团队有优化计划,但目前无排期
第三方 扩容方便 运维成本较高(服务器、人力),负载能力、稳定性待验证

第三方配置中心产品

  • Disconf:百度开源的配置管理中心,目前已经不维护了
  • Spring Cloud Config: Spring Cloud 生态组件,可以和Spring Cloud体系无缝整合。
  • Apollo: 携程开源的配置管理中心,具备规范的权限、流程治理等特性。
  • Nacos: 阿里开源的配置中心,也可以做DNS和RPC的服务发现。

由于Disconf不再维护,下面对比一下Spring Cloud Config、Apollo和Nacos。

产品功能特点比较

功能点 Spring Cloud Config Apollo Nacos
开源时间 2014.9 2016.5 2018.6
配置实时推送 支持(Spring Cloud Bus) 支持(HTTP长轮询1S内) 支持(HTTP长轮询1S内)
版本管理 支持(Git) 支持 支持
配置回滚 支持(Git) 支持 支持
灰度发布 支持 支持 待支持
权限管理 支持 支持 待支持
多集群 支持 支持 支持
多环境 支持 支持 支持
监听查询 支持 支持 支持
多语言 只支持java Go、C++、java、Python、PHP、.net、OpenAPI Python、Java、Node.js、OpenAPI
单机部署 Config-server+Git+Spring Cloud Bus(支持配置实时推送) Apollo-quikstart+MySQL Nacos单节点
分布式部署 Config-server+Git+MQ(部署复杂) Config+Admin+Portal+MySQL(部署复杂) Nacos+MySQL(部署简单)
配置格式校验 不支持 支持 支持
通信协议 HTTP和AMQP HTTP HTTP
数据一致性 Git保证数据一致性,Config-server从Git读数据 数据库模拟消息队列,Apollo定时读消息 HTTP异步通知
单机读 7(限流所致) 9000 15000
单机写 5(限流所致) 1100 1800
3节点读 21(限流所致) 27000 45000
3节点写 5(限流所致) 3300 5600
文档 详细 详细 有待完善(目前只有java开发相关文档)

说明:

  • 压测环境:
    • Nacos和Apollo使用同样的数据库(32C128G)
    • 部署Server服务的机器使用的8C16G配置的容器,磁盘是100G SSD。
  • Spring Cloud Config使用2.0.0.M9版本,Apollo使用1.2.0 release版本,Nacos使用0.5版本。
  • Spring Cloud Config 依赖git,使用局限性较大。

调研结果

首先会进一步跟进阿里云edas优化的排期,但是眼下好像是很渺茫... ...

其次,如果接入开源配置中心,根据以上数据分析,建议使用Apollo(功能完善,但是配置复杂)或nacos(功能简单,配置简单,能满足要求,但是文档不够丰富)。

参考文档

剧终

最终还是选择等待阿里云做优化了...

吐槽: 时间都浪费在LD的犹豫和不明确表达需求上...

© 著作权归作者所有

阿dai学长
粉丝 76
博文 263
码字总数 337363
作品 0
朝阳
运维
私信 提问
加载中

评论(4)

许雪里
许雪里
推荐一下XXL社区的配置中心 ,XXL-CONF https://www.xuxueli.com/xxl-conf/

新手半小时上手,功能不打折。
阿dai学长
阿dai学长 博主
收下了,谢谢
Joyzhou
Joyzhou
我记得acm介绍是支持nacos的吧
阿dai学长
阿dai学长 博主
支持,但是也是依赖于AccessKey和SecretKey,现在是想把这些信息隐藏了。https://help.aliyun.com/document_detail/94562.html?spm=a2c4g.11186623.2.16.182a3733pMjPo7#concept-hwf-kmt-4fb
工信部联合新华社瞭望智库共同考察承德德鸣大数据产业园

2017年9月15日,工信部、新华社政务信息公开课题组赴德鸣大数据产业园调研考察活动在承德圆满举办。工信部工业文化发展中心主任助理、北京三达经济技术合作开发中心副主任韩强、工信部工业文...

玄学酱
2018/03/02
0
0
填问卷,得《2015中国呼叫中心知识库现状与问题报告》

为了解中国呼叫中心知识库运营现状和存在的主要问题,掌握呼叫中心知识库的总体发展水平,中国知识管理中心(KMCenter)面向全国呼叫中心发起“2015中国呼叫中心知识库现状与问题调研”活动,...

kmctianzhigang
2015/02/09
0
0
Spring Cloud 如何选择分布式配置中心

微服务必备的几样武器有了,才能独闯武林, 有哪几样呢? 注册中心(eureka, consul, zk, etcd) 配置中心 (Spring Cloud Config, disconf ) API网关 (Spring Cloud zuul, kong) 熔断器 (hys...

尹吉欢
2017/11/30
0
0
冯涛 2016-06-28 工作日报

保洁员子系统的代码审查(100%); 调研配置中心相关内容(60%)。

edisondik
2016/06/28
4
0
冯涛 2016-06-27 工作日报

保洁员排班页面的代码审查(100%); 调研配置中心相关内容(30%)。

edisondik
2016/06/27
3
0

没有更多内容

加载失败,请刷新页面

加载更多

交换机switch 的shutdown 与 no shutdown

shutdown是关闭接口(端口),接口状态会变为DOWN,no shutdown是激活接口(端口),状态变为UP,一般在给vlan或者端口配置管理ip或者端口ip后使用。 有时候我们配置某个端口前会需要把端口关闭到...

刘日辉
38分钟前
5
0
AOP底层源码分析

思维导图 AOP AOP: 面向切面编程[底层就是动态代理] 指程序在运行期间动态的将某段代码切入到指定方法位置进行运行的编程方式。 AOP通知方式 前置通知: logStart(),在目标方法(div)运行之前运...

volc1612
52分钟前
5
0
OSChina 周六乱弹 —— 别听他们的,你不胖你只是毛茸茸的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @且无需多言 :分享Rise Against的单曲《Audience Of One (Ghost Note Symphonies)》: 硬核朋克不插电版本,隐藏在喧嚣下的柔情! 《Audienc...

小小编辑
今天
37
2
apache httpClient实现代理发送Post请求

CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials( new AuthScope("host", port), new UsernamePasswordCredentials(username, password......

huangkejie
今天
6
0
SpringCloud

单体应用存在的问题 ● 随着业务的发展,开发变得越来越复杂。 ● 修改、新增某个功能,需要对整个系统进行测试,重新部署。 ● 一个模块出现问题,很可能导致整个系统崩溃。 ● 多个开发团队...

Star永恒
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部