1. 程式人生 > >.net 分散式架構之配置中心

.net 分散式架構之配置中心

.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);//獲取配置值 } } }
複製程式碼

部分截圖