程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> .net 分布式架構之配置中心,.net架構

.net 分布式架構之配置中心,.net架構

編輯:C#入門知識

.net 分布式架構之配置中心,.net架構


開源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 車江毅

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved