分佈式緩存:Velocity之應用實踐

最近一直在研究微軟的分佈式緩存(Velocity)項目,今天終於完成 了公司的分佈式緩存系統的編碼,在完成的第一時間就想寫出來分享給你們,但願能幫到那些正在學習,渴望實例的同窗,廢話很少說,先上圖哈~ 緩存

哈哈,界面簡單比較醜,不喜勿噴哈~,下面繼續 安全

  1. 項目簡介

    系統以微軟的分佈式緩存(Velocity)項目爲基礎,實現了對分佈在各地的緩存服務器實現集羣管理,主要技術採用TCP協議、信道通訊模式完成了以下功能: 服務器

    一、分區:緩存集羣區域管理 架構

    二、安全:訪問IP限制 分佈式

    三、備份:緩存項實時備份 ide

    四、日誌:日誌採用界面、文件雙記錄 性能

    五、服務端未啓動客戶端無異常 學習

2、總體架構設計

3、代碼解讀

3.一、 服務啓動(TCP協議信道通訊)

/// <summary> 編碼

/// 啓動服務 spa

/// </summary>

/// <param name="Port"></param>

public static void Start(int Port)

{

IDictionary props = new Hashtable();

props["name"] = "Velocity";

props["port"] = Port;

IAuthorizeRemotingConnection authorizeCallback = (IAuthorizeRemotingConnection)new Server();

channel = new TcpServerChannel(props, new BinaryServerFormatterSinkProvider(), authorizeCallback);

//channel = new HttpServerChannel("Velocity", Port);

ChannelServices.RegisterChannel(channel, false);

RemotingConfiguration.RegisterWellKnownServiceType(typeof(VelocityUtil), "Velocity", WellKnownObjectMode.SingleCall);

}

3.2服務中止

     /// <summary>

/// 中止服務

/// </summary>

public static void Stop()

{

if (channel == null)

{

return;

}

ChannelServices.UnregisterChannel(channel);

}

3.三、安全驗證(IP限制)

     /// <summary>

/// 驗證IP

/// </summary>

/// <param name="endPoint"></param>

/// <returns></returns>

public bool IsConnectingEndPointAuthorized(System.Net.EndPoint endPoint)

{

#region 驗證IP地址代碼

bool flag = true;

flag = SafeIP.Count == 0 || SafeIP.Contains(endPoint.ToString().Split(':')[0]);

if (!flag)

{

VelocityUtil.UpLog(string.Format("非法訪問:{0}", endPoint.ToString()), VelocityUtil.LogType.Warning);

}

return flag;

#endregion

}

3.四、備份啓動緩存區初始化

public DataCache BackCache

{

get

{

#region 初始化方

if (backCache == null)

{

InitCache();

#region 初始化備份緩存區

Parallel.ForEach(Areas, (a) =>

{

try

{

backCache.CreateRegion(a, false);

}

catch { }

});

#endregion

}

return backCache;

#endregion

}

set { backCache = value; }

}

4、注意事項

一、緩存備份的實時性及緩存區的同步

二、系統通訊的安全性能,防止惡意訪問

三、委託更新UI太頻繁容易界面假死

哈哈,因爲工做緣由就先寫這麼多吧,有機會再補充,歡迎轉載,共同窗習,轉載請留下本人(Alum:349545750) 腳印~謝謝,歡迎一塊兒交流學習!

相關文章
相關標籤/搜索