開源QQ群: .net 開源基礎服務 238543768
開源地址: http://git.oschina.net/chejiangyi/Dyd.BaseService.ConfigManager
.net 統一配置中心
用於所有項目統一的配置集中管理,簡化運維和項目部署,具備高靈活性,高性能,高穩定性,高及時性。
同時具備配置項的負載均衡和故障轉移,從而實現項目的軟性的負載均衡和故障轉移能力。
1.高靈活性
一個項目可以自由組合或者繼承多個分類配置,多個分類的相同配置項可以被子分類配置項覆蓋。
(舉例:項目A可以組合使用“基礎數據庫配置”,“基礎監控配置”,“基礎日志配置”,“項目A配置”;項目A配置可以定義自身的特殊配置和覆蓋一些基礎配置)
2.高穩定性
sdk(客戶端)默認會在“本地”保存項目的所有配置“快照”,若統一配置中心異常,sdk將從上一次可用“快照”獲取配置,並在配置中心恢復後,獲取最新版本。
3.高性能
sdk(客戶端)默認在本地內存中緩存“最新版本”的項目配置,sdk獲取的配置都從內存版本中獲取。
4.高及時性
4.1 sdk(客戶端)默認心跳時間內連接配置中心獲取最新配置修改。
4.2 web端的配置修改,通過第三方消息中間件及時通知相關sdk至配置中心獲取最新修改。
4.3 web端可以重啟相關分類/相關項目的客戶端,重新初始化所有的配置信息。
5.軟性負載均衡
可以在web端手工配置某個配置的負載均衡(可以配置不同的使用權重命中不同的負載均衡配置)
(若要自動,請編寫任務掛載到“任務調度”中,根據業務情況,動態調整負載均衡權重。參考openapi接口)
6.軟性故障轉移
可以在web端手工配置某個配置的故障轉移。
(若要自動,請編寫任務掛載到“任務調度”中,根據業務情況,動態監測當前配置的故障情況,然後選擇使用備用故障配置。參考openapi接口)
使用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";//當前項目名稱,項目代碼配置或者從App.config/web.config讀取 XXF.Common.XXFConfig.ConfigManagerConnectString = "server=192.168.17.111;Initial Catalog=dyd_bs_config;User ID=sa;Password=123456;";//配置中心管理數據庫,項目代碼配置或者從App.config/web.config讀取 } /// <summary> /// 使用demo /// </summary> public void UseDemo() { /* * 配置獲取優先級 * 1.從本地app.config,web.config中優先獲取 * 2.從配置中心獲取次之。 */ string configkey = "configkey1"; var value = ConfigManagerHelper.Get<string>(configkey);//獲取配置值 } } }
部分截圖
by 車江毅