對(duì)于支持高并發(fā)量的web架構(gòu),服務(wù)器集群是很好的解決方案。不管是多臺(tái)獨(dú)立的服務(wù)器,還是一臺(tái)服務(wù)器啟動(dòng)多個(gè)iis進(jìn)程的web園,都相當(dāng)存在多個(gè)獨(dú)立一樣的web網(wǎng)站。而每個(gè)web網(wǎng)站默認(rèn)都使用自己獨(dú)立的Session空間,用戶每作一次請(qǐng)求都有可能切換到不同的web網(wǎng)站,所以我們需要同步這些web網(wǎng)站之間的Session,達(dá)到用戶數(shù)據(jù)的一致性。
我們來看看asp.net的session保存模式
1、 InProc 模式:默認(rèn)模式,即進(jìn)程內(nèi)模式,缺點(diǎn)是容易丟失,進(jìn)程間不共享。
2、 StateServer 模式:使用獨(dú)立的進(jìn)程aspnet_state.exe來保存Session,可以多服務(wù)器共享,缺點(diǎn)是單服務(wù)器緩存存儲(chǔ),不能持久化到磁盤。
3、 Sqlserver 模式:就是把Session存入Sqlserver數(shù)據(jù)庫(kù)中,可以多服務(wù)器共享,缺點(diǎn)是讀寫效率低。
4、 緩存服務(wù)器群+數(shù)據(jù)庫(kù)持久化:本文所述的就是這種模式,Memcached 提供了緩存服務(wù)器集群,數(shù)據(jù)庫(kù)采用sqlserver 持久化。
一、安裝Memcached 服務(wù)端
Memcached 分為windows版和linux版本,如果不考慮增加額外的linux服務(wù)器,可以采用windows版本運(yùn)行在同一臺(tái)服務(wù)器上,但是想提高集群服務(wù)器性能,還是建議使用linux集群。
Linux下安裝過程大家還是百度吧,這里簡(jiǎn)單介紹一下windows下安裝:
1、 下載win64版本
,win32版本百度找吧。
2、 解壓到一個(gè)目錄
3、 以管理員身份啟動(dòng)cmd窗口,進(jìn)入解壓目錄
輸入命令行
memcached.exe -dinstall
安裝服務(wù)
然后輸入命令行
memcached.exe -d start
啟動(dòng)服務(wù)
至此,單服務(wù)器版的memcached服務(wù)器端已經(jīng)安裝完畢,如果想做集群配置還是去百度吧。
二、安裝Memcached 客戶端
1、下載到http://memcachedproviders.codeplex.com/
或者 本站下載
, 官網(wǎng)提供了.net2.0, .net3.5版本的,可以重新編譯生成.net4.0以上版本的dll
2、解壓后,源碼里Trunk\DbSQL有2個(gè)目錄CreateScripts 和 StoredProcs?
里面的.sql文件是用來創(chuàng)建數(shù)據(jù)庫(kù)表和存儲(chǔ)過程的腳本。
安裝sqlserver數(shù)據(jù)庫(kù)2005/2008 ,我用的是sqlexpress2005版本。然后創(chuàng)建數(shù)據(jù)庫(kù)session?
打開session數(shù)據(jù)庫(kù),在查詢器里運(yùn)行目錄CreateScripts 和 StoredProcs下面的多個(gè).sql腳本文件(一個(gè)一個(gè)運(yùn)行),直到把表和所有的存儲(chǔ)過程都創(chuàng)建完畢。
3、添加引用
重新生成Trunk\MemcachedProviders 項(xiàng)目,得到3個(gè)dll
把這3個(gè)dll添加引用到自己的web工程里。
修改web工程的web.config????
4、 Session 使用
和傳統(tǒng)使用方法一樣
protectedvoid Page_Load(object sender, EventArgse)
{
Session[”Name”]=”test”;
}
5、 測(cè)試
運(yùn)行網(wǎng)站后,打開數(shù)據(jù)庫(kù)Session 的表tblSessions查看記錄?
說明Session已經(jīng)起作用
請(qǐng)關(guān)注開源框架 bigcore 大數(shù)據(jù)高并發(fā)?
http://www.8088net.com
聯(lián)系客服