四个方面
- 配置的演进
- 各种分布式配置中心
- autoconf介绍,功能介绍,以及易用UI
- autoconf实现原理
先回答什么是配置
程序在运行时的动态调整的能力
无需重启服务,无需重新编译
配置的演进
分布式配置中心一览
目前分布式配置中心其实挺多的
比如 百度的disconf, 阿里的diamond,携程的disconf等。本文不是比较他们的性能优劣
只是介绍autoconf
autoconf
一款高性能的分布式配置中心。用postgresql+zeromq存储数据
支持实时推,60秒定时拉。支持各种数据类型
autoconf的功能特点
1. 多环境:支持test/stage/product等多环境
2. 多版本:保存历史版本,可回滚版本
3. 推拉模型:实时推送变更,60秒定时拉
4. 灾备模型:本地缓存防止网络故障,redis减轻DB压力,DB做持久存储
5. 任意类型:支持KV,xml,html甚至二进制数据
6. 权限管理:分组权限管理,敏感信息加密
7. 批量修改: 创建多个同名不同配置组的配置,批量修改多个配置文件中的同一个字符串
8. 优先级:ip:port>ip>appName>envName
9. 极速搜索
注:配置组对应的就是一套开发环境。比如test环境是一个配置组。生产环境是一个配置组
配置文件是各种配置。比如mysql配置,redis配置
autoconf后台管理界面
autoconf的实现原理
从应用调用角度来看
1. 应用调用controller。
2. controller先查询redis缓存
3. 如果没有,再查询数据库
从管理员角度
1. 修改配置
2. 发送一个mq给zeromq,zeromq先暂时存储,
3. 等待60秒以后,后台会拉取mq的消息。清除缓存。并将修改存到数据库
注:配置对后台使用人员是加密的。如果要查看配置,需要相应的解密权限
附 github地址:https://github.com/colin-lee/...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。