配置中心平台技术选型及复盘

2020-03-03  本文已影响0人  hugoren

先看成果

配置文件(通过confd自动更新)

image.png

基础配置 and 业务配置(通过watch监听主动推送或是接口去pull)

image.png

技术选型

consul zookeeper etcd euerka对比

image.png

disconf apollo 对比

knightliao/disconf

部署极其简单:同一个上线包,无须改动配置,即可在 多个环境中(RD/QA/PRODUCTION) 上线
部署动态化:更改配置,无需重新打包或重启,即可 实时生效
统一管理:提供web平台,统一管理 多个环境(RD/QA/PRODUCTION)、多个产品 的所有配置
核心目标:一个jar包,到处运行

ctripcorp/apollo

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。

.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。

工具型的salt, ansible提供的数据管理

服务器多些了,都会用到一些管理工具,目前比较优秀的是saltstack, ansible,而这些工具都提供以环境为分类的数据管理。salt在安全性做得挺好,采用salt,sha246等加密通信。


image.png

其它开源

如阿里早期开源的diamond, 近期开源的nacoa。
或基于zookeeper的,或是基于spring的config.....
有很多很多可供选择,根据业务选择合适的,即可。

造轮子

经过调研,测试,基于etcd+confd+自画页面,提供c/s或接口的pull/push调用方式。满足静态的配置文件或动态参数调用。

选用etcd的原因

思考的功能点

实现

python版(starlette/fastapi)

starlette 提供web服务,之所以选择这个,没选择django, flask, 是因为轻量级,异步
fastapi 提供api及文档,选择这个的原因是轻量级,性能快,有更好的文档展示。

go版

gin-gonic/gin 好用,性能强

之所以,用两个语言来实现,是应对不同量级的服务,如果是接口调用居多,又要求响应,稳定性高的,go语言方案就相对放心了。

参考

consul
https://www.jianshu.com/p/7d20dc58c9fc
etcd
https://juejin.im/post/5e02fb1f518825123b1aa341
https://www.jianshu.com/p/3189dd70a691
https://www.hi-linux.com/posts/40915.html

前端依赖
jstree
https://www.jianshu.com/p/168283e3c470
https://www.cnblogs.com/xiaohualu/p/9836528.html
highlight
https://highlightjs.org/usage/
quill
https://quilljs.com/docs/modules/syntax/
ace
https://github.com/ajaxorg/ace
bootstrap v4
bootstrap-table

上一篇 下一篇

猜你喜欢

热点阅读