1.一種實(shí)現(xiàn)會(huì)話Session共享的系統(tǒng),其特征在于,包括:一個(gè)或多個(gè)服務(wù)器和集群設(shè)備;集群設(shè)備包括一個(gè)主用處理器和多個(gè)輔助處理器;其中,
服務(wù)器,用于接收到客戶端發(fā)送的用戶請(qǐng)求,判斷該用戶請(qǐng)求攜帶的cookie中是否存在第一會(huì)話標(biāo)識(shí)SessionID;當(dāng)判斷出用戶請(qǐng)求攜帶的cookie中存在第一SessionID時(shí),在本地內(nèi)存區(qū)域中查找與該第一SessionID對(duì)應(yīng)的第一Session數(shù)據(jù);判斷查找到的第一Session數(shù)據(jù)是否是有效數(shù)據(jù);當(dāng)判斷出查找到的第一Session數(shù)據(jù)是無效數(shù)據(jù)時(shí),則向主用處理器發(fā)送第一通知;接收到主用處理器發(fā)送的通知,為與所述用戶請(qǐng)求對(duì)應(yīng)的Session創(chuàng)建第二SessionID,并向主用處理器發(fā)送第二通知;
主用處理器,用于接收到服務(wù)器發(fā)送的第一通知,根據(jù)第一通知?jiǎng)h除自身、本地內(nèi)存區(qū)域以及每個(gè)輔助處理器中預(yù)先對(duì)應(yīng)存儲(chǔ)的該第一SessionID和與該第一SessionID對(duì)應(yīng)的第一Session數(shù)據(jù);通知服務(wù)器創(chuàng)建與用戶請(qǐng)求對(duì)應(yīng)的第二SessionID;接收到服務(wù)器發(fā)送的第二通知,根據(jù)第二通知在本地第一存儲(chǔ)單元中對(duì)應(yīng)存儲(chǔ)與用戶請(qǐng)求對(duì)應(yīng)的第二Session數(shù)據(jù)和第二SessionID,并且將對(duì)應(yīng)存儲(chǔ)的第二Session數(shù)據(jù)和第二SessionID同步至多個(gè)輔助處理器中;
輔助處理器,用于預(yù)先對(duì)應(yīng)存儲(chǔ)第一SessionID和與第一SessionID對(duì)應(yīng)的第一Session數(shù)據(jù);對(duì)應(yīng)存儲(chǔ)主用處理器同步過來的第二Session數(shù)據(jù)和第二SessionID。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述服務(wù)器,還用于當(dāng)判斷出所述用戶請(qǐng)求攜帶的cookie中不存在所述第一SessionID時(shí),為與所述用戶請(qǐng)求對(duì)應(yīng)的Session創(chuàng)建第三SessionID作為所述第一SessionID;向所述主用處理器發(fā)送第三通知;相應(yīng)地,
所述主用處理器,還用于接收到服務(wù)器發(fā)送的所述第三通知,在所述本地第一存儲(chǔ)單元中對(duì)應(yīng)存儲(chǔ)與所述用戶請(qǐng)求對(duì)應(yīng)的第三Session數(shù)據(jù)和所述第一SessionID,并且將對(duì)應(yīng)存儲(chǔ)的所述第三Session數(shù)據(jù)和所述第一SessionID同步至多個(gè)輔助處理器中;相應(yīng)地,
所述輔助處理器,還用于對(duì)應(yīng)存儲(chǔ)所述主用處理器同步過來的所述第三Session數(shù)據(jù)和所述第一SessionID。
3.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述服務(wù)器中用于在本地內(nèi)存區(qū)域中查找與該第一SessionID對(duì)應(yīng)的第一Session數(shù)據(jù)包括:根據(jù)所述第一SessionID判斷本地內(nèi)存區(qū)域中是否有所述第一Session數(shù)據(jù);當(dāng)判斷出所述本地內(nèi)存區(qū)域中有所述第一Session數(shù)據(jù),從所述本地內(nèi)存區(qū)域中讀取所述第一Session數(shù)據(jù);當(dāng)判斷出所述本地內(nèi)存區(qū)域中沒有所述第一Session數(shù)據(jù),向所述主用處理器發(fā)送第四通知;從所述本地內(nèi)存區(qū)域中讀取所述第一Session數(shù)據(jù);相應(yīng)地,
所述主用處理器,還用于接收到所述服務(wù)器發(fā)送的所述第四通知,查找與所述第一SessionID對(duì)應(yīng)的Session數(shù)據(jù);將查找到的Session數(shù)據(jù)同步至所述本地內(nèi)存區(qū)域中。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述主用處理器中用于查找與所述第一SessionID對(duì)應(yīng)存儲(chǔ)的Session數(shù)據(jù)包括:在所述多個(gè)輔助處理器中確定滿足預(yù)設(shè)條件的一個(gè)輔助處理器并通知滿足所述預(yù)設(shè)條件的一個(gè)輔助處理器;接收來自所述滿足所述預(yù)設(shè)條件的一個(gè)輔助處理器發(fā)送的查找到的與所述第一SessionID對(duì)應(yīng)存儲(chǔ)的Session數(shù)據(jù)并將接收到的所述Session數(shù)據(jù)作為與所述第一SessionID對(duì)應(yīng)的Session數(shù)據(jù);相應(yīng)地,
所述滿足所述預(yù)設(shè)條件的一個(gè)輔助處理器,用于在本地第二存儲(chǔ)單元中查找與所述第一SessionID對(duì)應(yīng)存儲(chǔ)的Session數(shù)據(jù);將查找到的與所述第一SessionID對(duì)應(yīng)存儲(chǔ)的Session數(shù)據(jù)發(fā)送給所述主用處理器。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述服務(wù)器,還用于當(dāng)判斷出查找到的所述第一Session數(shù)據(jù)是有效數(shù)據(jù)時(shí),向所述主用處理器發(fā)送第五通知;相應(yīng)地,
所述主用處理器,還用于接收到所述服務(wù)器發(fā)送的所述第五通知,更新自身、所述本地內(nèi)存區(qū)域以及每個(gè)輔助處理器中存儲(chǔ)的所述第一Session數(shù)據(jù)中的最后訪問時(shí)間。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述服務(wù)器中用于判斷查找到的第一Session數(shù)據(jù)是否是有效數(shù)據(jù)包括:
獲取當(dāng)前時(shí)間;
計(jì)算獲得的當(dāng)前時(shí)間和所述第一Session數(shù)據(jù)中的最后訪問時(shí)間之間的差值;
判斷所述差值是否大于預(yù)設(shè)時(shí)長閾值;
當(dāng)判斷出所述差值大于預(yù)設(shè)時(shí)長閾值,判斷出所述第一Session數(shù)據(jù)是無效數(shù)據(jù);
當(dāng)判斷出所述差值小于或等于預(yù)設(shè)時(shí)長閾值,判斷出所述第一Session數(shù)據(jù)是有效數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述服務(wù)器,還用于在所述為與所述用戶請(qǐng)求對(duì)應(yīng)的Session創(chuàng)建第二SessionID之后,將創(chuàng)建的所述第二SessionID作為所述第一SessionID存儲(chǔ)至所述cookie中并將存儲(chǔ)了所述第一SessionID的cookie返回給用戶。
8.一種實(shí)現(xiàn)會(huì)話Session共享的方法,其特征在于,包括:
主用處理器接收到服務(wù)器發(fā)送的第一通知,根據(jù)所述第一通知?jiǎng)h除自身、本地內(nèi)存區(qū)域以及每個(gè)輔助處理器中預(yù)先對(duì)應(yīng)存儲(chǔ)的第一會(huì)話標(biāo)識(shí)SessionID和與該第一SessionID對(duì)應(yīng)的第一Session數(shù)據(jù),并通知服務(wù)器創(chuàng)建與用戶請(qǐng)求對(duì)應(yīng)的第二SessionID;
主用處理器接收到所述服務(wù)器發(fā)送的第二通知,根據(jù)所述第二通知在本地第一存儲(chǔ)單元中對(duì)應(yīng)存儲(chǔ)與用戶請(qǐng)求對(duì)應(yīng)的第二Session數(shù)據(jù)和第二SessionID,并且將對(duì)應(yīng)存儲(chǔ)的第二Session數(shù)據(jù)和第二SessionID同步至多個(gè)輔助處理器中。
9.一種服務(wù)器,其特征在于,包括:收發(fā)模塊、判斷模塊、查找模塊和創(chuàng)建模塊;其中,
收發(fā)模塊,用于接收到客戶端發(fā)送的用戶請(qǐng)求;接收到判斷模塊發(fā)送的通知,則向主用處理器發(fā)送第一通知;接收來自主用處理器的通知,通知?jiǎng)?chuàng)建模塊;接收到創(chuàng)建模塊發(fā)送的通知,向主用處理器發(fā)送第二通知;
判斷模塊,用于判斷該用戶請(qǐng)求攜帶的cookie中是否存在第一會(huì)話標(biāo)識(shí)SessionID;當(dāng)判斷出用戶請(qǐng)求攜帶的cookie中存在第一SessionID時(shí),通知查找模塊;判斷查找到的第一Session數(shù)據(jù)是否是有效數(shù)據(jù);當(dāng)判斷出查找到的第一Session數(shù)據(jù)是無效數(shù)據(jù)時(shí),通知收發(fā)模塊;
查找模塊,用于在本地內(nèi)存區(qū)域中查找與該第一SessionID對(duì)應(yīng)的第一Session數(shù)據(jù);
創(chuàng)建模塊,用于接收到收發(fā)模塊發(fā)送的通知,為與該用戶請(qǐng)求對(duì)應(yīng)的Session創(chuàng)建第二SessionID;通知收發(fā)模塊向主用處理器發(fā)送第二通知。
10.一種集群設(shè)備,其特征在于,包括:一個(gè)主用處理器和多個(gè)輔助處理器;其中,
主用處理器,用于接收到服務(wù)器發(fā)送的第一通知,刪除自身、本地內(nèi)存區(qū)域以及每個(gè)輔助處理器中預(yù)先對(duì)應(yīng)存儲(chǔ)的該第一會(huì)話標(biāo)識(shí)SessionID和與該第一SessionID對(duì)應(yīng)的第一Session數(shù)據(jù);通知服務(wù)器;接收到服務(wù)器發(fā)送的第二通知,在本地第一存儲(chǔ)單元中對(duì)應(yīng)存儲(chǔ)與該用戶請(qǐng)求對(duì)應(yīng)的第二Session數(shù)據(jù)和該第二SessionID,并且將對(duì)應(yīng)存儲(chǔ)的第二Session數(shù)據(jù)和第二SessionID同步至多個(gè)輔助處理器中;
輔助處理器,用于預(yù)先對(duì)應(yīng)存儲(chǔ)該第一SessionID和與該第一SessionID對(duì)應(yīng)的第一Session數(shù)據(jù);對(duì)應(yīng)存儲(chǔ)主用處理器同步過來的第二Session數(shù)據(jù)和第二SessionID。