Disconf 配置文檔

Disconf

Distributed Configuration Management Platform(分布式配置管理平臺)

專注于各種「分布式系統(tǒng)配置管理」的「通用組件」和「通用平臺」, 提供統(tǒng)一的「配置管理服務(wù)」

主要目標(biāo):

  • 部署極其簡單:同一個上線包,無須改動配置,即可在 多個環(huán)境中(RD/QA/PRODUCTION) 上線
  • 部署動態(tài)化:更改配置,無需重新打包或重啟,即可 實(shí)時生效
  • 統(tǒng)一管理:提供web平臺,統(tǒng)一管理 多個環(huán)境(RD/QA/PRODUCTION)、多個產(chǎn)品 的所有配置
  • 核心目標(biāo):一個jar包,到處運(yùn)行

demos && 文檔 && 協(xié)作

版本

  • dev(dev branch): 2.6.36
  • master(latest && cooperate && contribute branch):2.6.36
  • stable(release && stable branch): 2.6.36

功能特點(diǎn)

  • 支持配置(配置項(xiàng)+配置文件)的分布式化管理
  • 配置發(fā)布統(tǒng)一化
    • 配置發(fā)布、更新統(tǒng)一化:
      • 同一個上線包 無須改動配置 即可在 多個環(huán)境中(RD/QA/PRODUCTION) 上線
      • 配置存儲在云端系統(tǒng),用戶統(tǒng)一管理 多個環(huán)境(RD/QA/PRODUCTION)、多個平臺 的所有配置
    • 配置更新自動化:用戶在平臺更新配置,使用該配置的系統(tǒng)會自動發(fā)現(xiàn)該情況,并應(yīng)用新配置。特殊地,如果用戶為此配置定義了回調(diào)函數(shù)類,則此函數(shù)類會被自動調(diào)用。
  • 極簡的使用方式(注解式編程 或 XML無代碼侵入模式):我們追求的是極簡的、用戶編程體驗(yàn)良好的編程方式。目前支持兩種開發(fā)模式:基于XML配置或者基于注解,即可完成復(fù)雜的配置分布式化。

注:配置項(xiàng)是指某個類里的某個Field字段。

Disconf的功能特點(diǎn)描述圖:

其它功能特點(diǎn)

  • 低侵入性或無侵入性、強(qiáng)兼容性:
    • 低侵入性:通過極少的注解式代碼撰寫,即可實(shí)現(xiàn)分布式配置。
    • 無侵入性:通過XML簡單配置,即可實(shí)現(xiàn)分布式配置。
    • 強(qiáng)兼容性:為程序添加了分布式配置注解后,開啟Disconf則使用分布式配置;若關(guān)閉Disconf則使用本地配置;若開啟Disconf后disconf-web不能正常Work,則Disconf使用本地配置。
  • 支持配置項(xiàng)多個項(xiàng)目共享,支持批量處理項(xiàng)目配置。
  • 配置監(jiān)控:平臺提供自校驗(yàn)功能(進(jìn)一步提高穩(wěn)定性),可以定時校驗(yàn)應(yīng)用系統(tǒng)的配置是否正確。

安裝依賴軟件

  • 安裝Mysql(Ver 14.12 Distrib 5.0.45, for unknown-linux-gnu (x86_64) using EditLine wrapper)
  • 安裝Tomcat(apache-tomcat-7.0.50)
  • 安裝Nginx(nginx/1.5.3)
  • 安裝 zookeeeper (zookeeper-3.3.0)
  • 安裝 Redis (2.4.5)

準(zhǔn)備配置

將你的配置文件放到此地址目錄下(以下地址可自行設(shè)定):

/home/work/dsp/disconf-rd/online-resources

如果不確定如何配置,可以拷貝/disconf-web/profile/rd/目錄下的文件,拷貝過去后修改即可。

配置文件包括:

- jdbc-mysql.properties (數(shù)據(jù)庫配置)
- redis-config.properties (Redis配置,主要用于web登錄使用)
- zoo.properties (Zookeeper配置)
- application.properties (應(yīng)用配置)

注意,記得執(zhí)行將application-demo.properties復(fù)制成application.properties:

cp application-demo.properties application.properties 

注意,即使只有一個redis,也應(yīng)該配置兩個redis client,否則將造成內(nèi)部錯誤。

設(shè)置War包將要被部署的地址(以下地址可自行設(shè)定):

/home/work/dsp/disconf-rd/war

構(gòu)建

ONLINE_CONFIG_PATH=/home/work/dsp/disconf-rd/online-resources
WAR_ROOT_PATH=/home/work/dsp/disconf-rd/war
export ONLINE_CONFIG_PATH
export WAR_ROOT_PATH
cd disconf-web
sh deploy/deploy.sh

這樣會在 /home/work/dsp/disconf-rd/war 生成以下結(jié)果:

-disconf-web.war  
-html  
-META-INF  
-WEB-INF

上線前的初始化工作

初始化數(shù)據(jù)庫:

可以參考 sql/readme.md 來進(jìn)行數(shù)據(jù)庫的初始化。注意順序執(zhí)行
0-init_table.sql
1-init_data.sql
201512/20151225.sql
20160701/20160701.sql

里面默認(rèn)有6個用戶(請注意線上環(huán)境刪除這些用戶以避免潛在的安全問題

name pwd
admin admin
testUser1 MhxzKhl9209
testUser2 MhxzKhl167
testUser3 MhxzKhl783
testUser4 MhxzKhl8758
testUser5 MhxzKhl112

如果想自己設(shè)置初始化的用戶名信息,可以參考代碼來自己生成用戶:

src/main/java/com/baidu/disconf/web/tools/UserCreateTools.java

部署War

修改server.xml文件,在Host結(jié)點(diǎn)下設(shè)定Context:

<Context path="" docBase="/home/work/dsp/disconf-rd/war"></Context>

并設(shè)置端口為 8015

啟動Tomcat,即可。

部署 前端

修改 nginx.conf

upstream disconf {
    server 127.0.0.1:8015;
}

server {

    listen   8081;
    server_name disconf.com;
    access_log /home/work/var/logs/disconf/access.log;
    error_log /home/work/var/logs/disconf/error.log;

    location / {
        root /home/work/dsp/disconf-rd/war/html;
        if ($query_string) {
            expires max;
        }
    }

    location ~ ^/(api|export) {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://disconf;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 當(dāng)項(xiàng)目達(dá)到一定程度,配置五花八門這時候配置中心的便派上了用場。 方案1 maven打包 如果只是要區(qū)分開發(fā)環(huán)境和上...
    AbsurdOS閱讀 1,422評論 0 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,306評論 2 89
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評論 6 342
  • 昨天在朋友的閱讀器上看了一本叫乖,摸摸頭的書,應(yīng)該是作者大冰的散文集吧,因?yàn)槲乙膊荒軠?zhǔn)確的下一個定義,那就姑...
    萌萌噠的林菇?jīng)?/span>閱讀 434評論 0 1

友情鏈接更多精彩內(nèi)容