分佈式配置中心--autoconf

四個方面

  1. 配置的演進
  2. 各類分佈式配置中心
  3. autoconf介紹,功能介紹,以及易用UI
  4. autoconf實現原理

先回答什麼是配置

程序在運行時的動態調整的能力
無需重啓服務,無需從新編譯

配置的演進

clipboard.png

分佈式配置中心一覽

目前分佈式配置中心其實挺多的
好比 百度的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後臺管理界面

clipboard.png

clipboard.png

autoconf的實現原理

從應用調用角度來看
1. 應用調用controller。
2. controller先查詢redis緩存
3. 若是沒有,再查詢數據庫
從管理員角度
1. 修改配置
2. 發送一個mq給zeromq,zeromq先暫時存儲,
3. 等待60秒之後,後臺會拉取mq的消息。清除緩存。並將修改存到數據庫

注:配置對後臺使用人員是加密的。若是要查看配置,須要相應的解密權限html

附 github地址:https://github.com/colin-lee/...mysql

相關文章
相關標籤/搜索