最近一直在研究微軟的分佈式緩存(Velocity)項目,今天終於完成 了公司的分佈式緩存系統的編碼,在完成的第一時間就想寫出來分享給你們,但願能幫到那些正在學習,渴望實例的同窗,廢話很少說,先上圖哈~ 緩存
哈哈,界面簡單比較醜,不喜勿噴哈~,下面繼續 安全
系統以微軟的分佈式緩存(Velocity)項目爲基礎,實現了對分佈在各地的緩存服務器實現集羣管理,主要技術採用TCP協議、信道通訊模式完成了以下功能: 服務器
一、分區:緩存集羣區域管理 架構
二、安全:訪問IP限制 分佈式
三、備份:緩存項實時備份 ide
四、日誌:日誌採用界面、文件雙記錄 性能
五、服務端未啓動客戶端無異常 學習
/// <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);
}
/// <summary>
/// 中止服務
/// </summary>
public static void Stop()
{
if (channel == null)
{
return;
}
ChannelServices.UnregisterChannel(channel);
}
/// <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
}
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; }
}
一、緩存備份的實時性及緩存區的同步
二、系統通訊的安全性能,防止惡意訪問
三、委託更新UI太頻繁容易界面假死
哈哈,因爲工做緣由就先寫這麼多吧,有機會再補充,歡迎轉載,共同窗習,轉載請留下本人(Alum:349545750) 腳印~謝謝,歡迎一塊兒交流學習!