一種分布式Session管理中間件的制作方法
【技術領域】
[0001]本發明涉及Sess1n管理技術領域,特別涉及一種分布式Sess1n管理中間件。
【背景技術】
[0002]隨著互聯網的發展,人們要求服務器系統具有更高的性能和穩定性,由此使得服務器集群系統的應用越來越廣泛,而服務器集群系統中的Sess1n管理模式也由此從單機管理模式逐漸向集群管理模式擴展,Sess1n在集群節點之間的同步、存儲成為了其核心技術問題。
[0003]目前,基于Tomcat或WebLogic中間件對于Sess1n的同步均是米用組播的方式,在各個集群節點進行Sess1n復制,這樣需要對大量的Sess1n信息進行復制,在用戶數量和集群數量達到一定規模后,對Sess1n信息的復制操作便成為了系統的性能瓶頸,從而降低了對Sess1n信息的管理效率。
[0004]綜上所述可以看出,如何提高對Sess1n信息的管理效率,避免大量信息同步是目前亟待解決的問題。
【發明內容】
[0005]有鑒于此,本發明的目的在于提供一種分布式Sess1n管理中間件,提高了對Sess1n信息的管理效率,避免大量信息同步。其具體方案如下:
[0006]—種分布式Sess1n管理中間件,應用于服務器集群系統,所述服務器集群系統包括N臺節點服務器,N為正整數,其中,所述N臺節點服務器中包括一臺中心節點服務器;所述分布式Sess1n管理中間件包括Sess1n生命周期管理模塊和Sess1n存儲器;其中,
[0007]所述Sess1n生命周期管理模塊,用于當用戶通過瀏覽器向所述服務器集群系統發送的本次會話請求為首次會話請求時,創建與本次會話請求對應的Sess1n信息,并將該Sess1n信息發送至所述Sess1n存儲器;當用戶通過瀏覽器向所述服務器集群系統發送的本次會話請求并非首次會話請求時,從所述Sess1n存儲器中讀取出與該用戶通過當前瀏覽器發送的首次會話請求所對應的Sess1n信息;
[0008]所述Sess1n存儲器,用于對每次所述Sess1n生命周期管理模塊發送的Sess1n信息進行存儲,并且當有新的節點服務器被添加到所述服務器集群系統中時,通過所述中心節點服務器,將自身存儲的所有Sess1n信息下發至所述新的節點服務器。
[0009]優選的,所述Sess1n存儲器包括Sess1n緩沖池和MongoDB數據庫;其中,
[0010]所述Sess1n緩沖池,用于在每次接收到所述Sess1n生命周期管理模塊發送的Sess1n信息后,對該Sess1n信息進行緩存處理,并將該Sess1n信息轉發至所述MongoDB數據庫;
[0011]所述MongoDB數據庫,用于在每次接收到所述Sess1n緩沖池發送的Sess1n信息后,對該Sess1n信息進行持久化存儲,并且當有新的節點服務器被添加到所述服務器集群系統中時,通過所述中心節點服務器,將自身存儲的所有Sess1n信息下發至所述新的節點服務器。
[0012]優選的,所述中心節點服務器包括:
[0013]指令接收單元,用于當有新的節點服務器被添加到所述服務器集群系統中時,獲取所述新的節點服務器發送的Sess1n信息請求指令;
[0014]信息傳輸單元,用于當所述指令接收單元接收到所述Sess1n信息請求指令時,將所述MongoDB數據庫中存儲的所有Sess1n信息傳輸至所述新的節點服務器。
[0015]優選的,所述Sess1n生命周期管理模塊包括:
[0016]請求攔截單元,用于對用戶通過瀏覽器向所述服務器集群系統發送的本次會話請求進行攔截;
[0017]請求判斷單元,用于判斷所述請求攔截單元攔截到的本次會話請求中是否攜帶Sess1nID,如果否,則判定本次會話請求為首次會話請求,如果是,則判定本次會話請求并非首次會話請求;
[0018]Sess1n創建單元,用于當本次會話請求沒有攜帶Sess1nID時,創建與本次會話請求對應的Sess1n信息,并將該Sess1n信息發送至所述Sess1n緩沖池,其中,每個Sess1n信息均包含與其對應的Sess1nID ;
[0019]Sess1n讀取單元,用于當本次會話請求攜帶有Sess1nID時,利用該Sess1nID,確定當前所述Sess1n緩沖池中是否存儲有與該Sess1nID對應的Sess1n信息,如果是,則從所述Sess1n緩沖池中讀取出與該Sess1nID對應的Sess1n信息,如果否,貝>J從所述MongoDB數據庫讀取出與該Sess1nID對應的Sess1n信息。
[0020]優選的,所述分布式Sess1n管理中間件還包括超時Sess1n銷毀模塊,其中,
[0021]所述超時Sess1n銷毀模塊,用于對所述Sess1n緩沖池的每個Sess1n信息是否超時進行判斷,當判斷出所述Sess1n緩沖池的任一 Sess1n信息超時后,對該Sess1n信息進行銷毀處理;
[0022]所述Sess1n緩沖池,還用于當所述所述超時Sess1n銷毀模塊對所述Sess1n緩沖池中的任一 Sess1n信息進行銷毀后,發送相應指令到所述MongoDB數據庫,以通知所述MongoDB數據庫對相應的Sess1n信息進行銷毀處理。
[0023]優選的,所述超時Sess1n銷毀模塊包括:
[0024]超時監控單元,用于對所述Sess1n緩沖池中的每個Sess1n信息進行掃描,并計算當前時刻與每個Sess 1n信息對應的上一次會話請求的時刻之間的時間差,判斷每個Sess1n信息對應的時間差是否大于或等于預設值;
[0025]銷毀指令發送單元,用于當所述超時監控單元判斷出任一 Sess1n信息對應的時間差大于或等于所述預設值時,向所述Sess1n緩沖池發送與該Sess1n信息對應的Sess1n銷毀指令,以使所述Sess1n緩沖池根據該Sess1n銷毀指令對相應的Sess1n信息進行銷毀處理。
[0026]優選的,所述分布式Sess1n管理中間件還包括:
[0027]Sess1n屬性更新單元,用于當需要對已創建的任一 Sess1n信息的屬性進行更新時,同時對所述Sess1n緩沖池和所述MongoDB數據庫中相應的Sess1n信息的屬性進行更新處理。
[0028]優選的,所述分布式Sess1n管理中間件還包括:
[0029]Sess1n會話時間變更單元,用于當需要對已創建的任一 Sess1n信息的會話時間進行變更時,僅對所述Sess1n緩沖池中的相應Sess1n信息的會話時間進行變更。
[0030]優選的,所述分布式Sess1n管理中間件還包括:
[0031 ] Sess1n監控模塊,用于對所述Sess1n緩沖池中的Sess1n信息的數量以及占用內存情況進行監控,并對所述MongoDB數據庫的運行狀態進行監控。
[0032]優選的,所述分布式Sess1n管理中間件還包括:
[0033]MongoDB副本集,用于對所述MongoDB數據庫中存儲的數據進行備份處理。
[0034]本發明中,分布式Sess1n管理中間件包括Sess1n生命周期管理模塊和Sess1n存儲器;其中,Sess1n生命周期管理模塊用于當用戶通過瀏覽器向服務器集群系統發送的本次會話請求為首次會話請求時,倉ll建與本次會話請求對應的Sess1n信息,并將該Sess1n信息發送至Sess1n存儲器;Sess1n存儲器用于對每次Sess1n生命周期管理模塊發送的Sess1n信息進行存儲,并且當有新的節點服務器被添加到服務器集群系統中時,通過中心節點服務器,將自身存儲的所有Sess1n信息下發至新的節點服務器。可見,本發明中,當用戶通過瀏覽器向服務器集群系統發送首次會話請求時,均通過Sess1n生命周期管理模塊創建相應的Sess1n信息,并通過Sess1n存儲器對Sess1n生命周期管理模塊創建的Sess1n信息進行存儲,當有新的節點服務器被添加到服務器集群系統中時,便可通過中心節點服務器將Sess1n存儲器存儲的所有Sess1n信息下發至新的節點服務器,這樣相當于在Sess1n存儲器中存儲了所有的Sess1n信息,當需要向新的節點服務器同步Sess1n信息時,只需通過中心節點服務器將Sess1n存儲器中存儲的Sess1n信息下發至該新的節點服務器便可,從而避免了現有技術中由于采用組播的方式進行Sess1n信息同步而造成的需要對大量信息進行同步的問題,從而提高了對Sess1n信息的管理效率。
【附圖說明】
[0035]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0036]圖1為本發明實施例公開的一