一種多服務器下的會話保持共享方法及系統的制作方法
【技術領域】
[0001] 本發明設及一種會話保持技術,特別設及一種多服務器下的會話保持共享方法及 系統。
【背景技術】
[0002] 部署目前大型網站架構都采用集群部署方式,weblogic、tomcat等服務器雖然支 持會話的復制,但是實現機制一般采用廣播風暴的方式,因此比較笨重,嚴重影響服務器性 能。
[0003] 用戶感知體驗方面,當在服務端進行上線操作時需要重啟服務端,由于會話是存 放在服務端jvm內存中,重啟會導致用戶會話丟失,此時用戶訪問功能時可能會提示重新 登錄。
【發明內容】
[0004] 本發明所要解決的技術問題是提供一種在集群環境下避免用廣播的方式傳遞會 話、服務端重啟時仍然能夠保持會話的多服務器下的會話保持共享方法及系統。
[0005] 本發明解決上述技術問題的技術方案如下:一種多服務器下的會話保持共享方 法,包括W下步驟:
[0006] 當系統中的任一服務器接收客戶端發送的用于請求創建會話的會話請求時,根據 會話請求獲取會話ID;
[0007] 接收到會話請求的所述服務器根據會話ID查詢緩存服務器,得到查詢結果;
[0008] 所述服務器將查詢結果返回給客戶端。
[0009] 本發明的有益效果是:本發明避免web服務器之間進行會話復制等不必要操作, 使會話能夠統一進行管理,不用擔屯、引web服務器因重啟導致的會話丟失。
[0010] 在上述技術方案的基礎上,本發明還可W做如下改進。
[0011] 進一步,所述緩存服務器包括一級緩存服務器和二級緩存服務器。
[0012] 進一步,所述接收到會話請求的所述服務器根據會話ID查詢緩存服務器具體為:
[0013] 如果所述一級緩存服務器中存在會話ID,所述服務器獲取與會話ID對應的會話, 并將會話返回給客戶端,否則,所述服務器繼續查找二級緩存服務器,如果所述二級緩存服 務器中存在會話ID,則將會話返回給客戶端,否則,在一級緩存服務器中根據會話ID創建 一個會話,并將所述創建的會話存儲到二級緩存服務器中。
[0014] 進一步,當系統中的另一服務器接收同一客戶端發送的用于請求創建會話的會話 請求時,根據會話請求獲取會話ID,根據會話ID直接從緩存服務器中獲取會話,并將獲取 的會話返回給客戶端。
[0015] 進一步,一種多服務器下的會話保持共享系統,包括獲取模塊、查詢模塊和返回模 塊;
[0016] 所述獲取模塊,用于當系統中的任一服務器接收客戶端發送的用于請求創建會話 的會話請求時,根據會話請求獲取會話ID;
[0017] 所述查詢模塊,用于接收到會話請求的所述服務器根據會話ID查詢緩存服務器, 得到查詢結果;
[001引所述返回模塊,用于所述服務器將查詢結果返回給客戶端。
[0019] 進一步,所述緩存服務器包括一級緩存服務器和二級緩存服務器。
[0020] 進一步,所述查詢模塊進一步用于:
[0021] 如果所述一級緩存服務器中存在會話ID,所述服務器獲取與會話ID對應的會話, 并將會話返回給客戶端,否則,所述服務器繼續查找二級緩存服務器,如果所述二級緩存服 務器中存在會話ID,則將會話返回給客戶端,否則,在一級緩存服務器中根據會話ID創建 一個會話,并將所述創建的會話存儲到二級緩存服務器中。
[0022] 進一步,還包括再次會話請求模塊,用于當系統中的另一服務器接收同一客戶端 發送的用于請求創建會話的會話請求時,根據會話請求獲取會話ID,根據會話ID直接從緩 存服務器中獲取會話,并將獲取的會話返回給客戶端。
【附圖說明】
[0023] 圖1為本發明方法步驟流程圖;
[0024] 圖2為本發明系統結構圖。
[0025] 附圖中,各標號所代表的部件列表如下:
[00%] 1、獲取模塊,2、查詢模塊,3、返回模塊,4、次會話請求模塊。
【具體實施方式】
[0027] W下結合附圖對本發明的原理和特征進行描述,所舉實例只用于解釋本發明,并 非用于限定本發明的范圍。 陽0測 實施例1
[0029] 如圖1所示,一種多服務器下的會話保持共享方法,包括W下步驟:
[0030] 當系統中的任一服務器接收客戶端發送的用于請求創建會話的會話請求時,根據 會話請求獲取會話ID;
[0031] 接收到會話請求的所述服務器根據會話ID查詢緩存服務器,得到查詢結果;
[0032] 所述服務器將查詢結果返回給客戶端。
[0033] 所述緩存服務器包括一級緩存服務器和二級緩存服務器。
[0034] 所述接收到會話請求的所述服務器根據會話ID查詢緩存服務器具體為:
[0035] 如果所述一級緩存服務器中存在會話ID,所述服務器獲取與會話ID對應的會話, 并將會話返回給客戶端,否則,所述服務器繼續查找二級緩存服務器,如果所述二級緩存服 務器中存在會話ID,則將會話返回給客戶端,否則,在一級緩存服務器中根據會話ID創建 一個會話,并將所述創建的會話存儲到二級緩存服務器中。
[0036] 當系統中的另一服務器接收同一客戶端發送的用于請求創建會話的會話請求時, 根據會話請求獲取會話ID,根據會話ID直接從緩存服務器中獲取會話,并將獲取的會話返 回給客戶端。
[0037] 如圖2所示,一種多服務器下的會話保持共享系統,包括獲取模塊1、查詢模塊2和 返回模塊3;
[0038] 所述獲取模塊1,用于當系統中的任一服務器接收客戶端發送的用于請求創建會 話的會話請求時,根據會話請求獲取會話ID;
[0039] 所述查詢模塊2,用于接收到會話請求的所述服務器根據會話ID查詢緩存服務 器,得到查詢結果;
[0040] 所述返回模塊3,用于所述服務器將查詢結果返回給客戶端。
[0041] 所述緩存服務器包括一級緩存服務器和二級緩存服務器。
[0042] 所述查詢模塊2進一步用于:
[0043] 如果所述一級緩存服務器中存在