開源QQ群: .net 開源基礎(chǔ)服務(wù) 238543768
開源地址: http://git.oschina.net/chejiangyi/Dyd.BaseService.ConfigManager
.net 統(tǒng)一配置中心
用于所有項目統(tǒng)一的配置集中管理,簡化運維和項目部署,具備高靈活性,高性能,高穩(wěn)定性,高及時性。
同時具備配置項的負(fù)載均衡和故障轉(zhuǎn)移,從而實現(xiàn)項目的軟性的負(fù)載均衡和故障轉(zhuǎn)移能力。
1.高靈活性
一個項目可以自由組合或者繼承多個分類配置,多個分類的相同配置項可以被子分類配置項覆蓋。
(舉例:項目A可以組合使用“基礎(chǔ)數(shù)據(jù)庫配置”,“基礎(chǔ)監(jiān)控配置”,“基礎(chǔ)日志配置”,“項目A配置”;項目A配置可以定義自身的特殊配置和覆蓋一些基礎(chǔ)配置)
2.高穩(wěn)定性
sdk(客戶端)默認(rèn)會在“本地”保存項目的所有配置“快照”,若統(tǒng)一配置中心異常,sdk將從上一次可用“快照”獲取配置,并在配置中心恢復(fù)后,獲取最新版本。
3.高性能
sdk(客戶端)默認(rèn)在本地內(nèi)存中緩存“最新版本”的項目配置,sdk獲取的配置都從內(nèi)存版本中獲取。
4.高及時性
4.1 sdk(客戶端)默認(rèn)心跳時間內(nèi)連接配置中心獲取最新配置修改。
4.2 web端的配置修改,通過第三方消息中間件及時通知相關(guān)sdk至配置中心獲取最新修改。
4.3 web端可以重啟相關(guān)分類/相關(guān)項目的客戶端,重新初始化所有的配置信息。
5.軟性負(fù)載均衡
可以在web端手工配置某個配置的負(fù)載均衡(可以配置不同的使用權(quán)重命中不同的負(fù)載均衡配置)
(若要自動,請編寫任務(wù)掛載到“任務(wù)調(diào)度”中,根據(jù)業(yè)務(wù)情況,動態(tài)調(diào)整負(fù)載均衡權(quán)重。參考o(jì)penapi接口)
6.軟性故障轉(zhuǎn)移
可以在web端手工配置某個配置的故障轉(zhuǎn)移。
(若要自動,請編寫任務(wù)掛載到“任務(wù)調(diào)度”中,根據(jù)業(yè)務(wù)情況,動態(tài)監(jiān)測當(dāng)前配置的故障情況,然后選擇使用備用故障配置。參考o(jì)penapi接口)
使用demo
using System;using System.Collections.Generic;using System.Linq;using System.Text;using XXF.BaseService.ConfigManager;//使用ConfigManager命名空間namespace Dyd.BaseService.ConfigManager.Test{ /* * 配置中心使用demo */ public class ConfigManagerDemo { /// <summary> /// 配置中心基本配置初始化 /// </summary> public void InitConfig() { XXF.Common.XXFConfig.PRojectName = "projecttest";//當(dāng)前項目名稱,項目代碼配置或者從App.config/web.config讀取 XXF.Common.XXFConfig.ConfigManagerConnectString = "server=192.168.17.111;Initial Catalog=dyd_bs_config;User ID=sa;PassWord=123456;";//配置中心管理數(shù)據(jù)庫,項目代碼配置或者從App.config/web.config讀取 } /// <summary> /// 使用demo /// </summary> public void UseDemo() { /* * 配置獲取優(yōu)先級 * 1.從本地app.config,web.config中優(yōu)先獲取 * 2.從配置中心獲取次之。 */ string configkey = "configkey1"; var value = ConfigManagerHelper.Get<string>(configkey);//獲取配置值 } }}
部分截圖
by 車江毅
新聞熱點
疑難解答