一鸽扁、概述
由于架構(gòu)設(shè)計一里面如果多平臺公用相同Key的緩存更改配置后需要多平臺上傳最新的緩存配置文件來更新谭网,比較麻煩达罗,更新了架構(gòu)設(shè)計二實現(xiàn)了緩存配置的集中管理痒芝,不過這樣有有了過于中心化的問題俐筋,后續(xù)在看看如何修改
總體設(shè)計思路如下:
項目結(jié)構(gòu)如下:
二、服務(wù)端(提供Key配置文件管理及將Key配置存到緩存中)
KeyConfigList.xml緩存Key配置文件【與前一版一致】
KeyConfigList.xml
KeyEntity.cs是對應(yīng)xml文件的數(shù)據(jù)實體類(與客戶端通用)
KeyEntity.cs
RedisManager.cs是Redis的管理類使用的StackExchange.Redis.dll(與客戶端通用)
RedisManager.cs
KeyServer.cs是提供緩存配置文件管理严衬、監(jiān)聽澄者、存儲等功能的核心類
KeyServer.cs
服務(wù)端會讀取消息來監(jiān)控緩存是否含有配置信息所以服務(wù)端需要掛在成一個WindowsService服務(wù)
測試調(diào)用代碼
三、客戶端(根據(jù)KeyNames獲取緩存中的配置请琳,然后根據(jù)配置讀取緩存數(shù)據(jù)或創(chuàng)建緩存數(shù)據(jù)粱挡,如果沒有配置則會返回NULL并發(fā)送消息申請創(chuàng)建緩存配置,主業(yè)務(wù)不會中斷會直接穿透到數(shù)據(jù)庫取值)
**KeyEntity.cs **和 RedisManager.cs的代碼和服務(wù)端的一致俄精,有需要拷貝即可询筏!
CacheProvider.cs是對外提供緩存功能的類【與前一版一致】
CacheProvider.cs
MQProvider.cs是對外提供隊列功能的類【與前一版一致】
MQProvider.cs
KeyNames.cs配置緩存Key的名稱,用于尋找Key配置【與前一版一致】
KeyNames.cs
KeyClient.cs是對于使用緩存時尋找Key對應(yīng)配置信息的核心類
KeyClient.cs
客戶端使用只會接觸到CacheProvider.cs和MQProvider.cs兩個對外開放的操作類
使用步驟:
1嘀倒、向KeyNames.cs中添加一個唯一的KeyName用于找到指定的Key配置屈留;
2局冰、向服務(wù)端的KeyConfigList.xml中添加此KeyName的緩存配置(此功能的提供方式可以自己定義测蘑,如直接修改文件或提供管理程序等);
3康二、使用Cache或者M(jìn)Q的操作類傳遞KeyNames的枚舉值碳胳,再傳遞緩存值即可;
測試調(diào)用代碼
如有什么可以改進(jìn)的地方還請不吝指點沫勿,謝謝