一種會(huì)話數(shù)據(jù)處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,更為具體而言,涉及一種會(huì)話數(shù)據(jù)處理方法和裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)相關(guān)技術(shù)的不斷發(fā)展,越來越多的應(yīng)用服務(wù)需要進(jìn)行分布式集群部署,采用多臺(tái)應(yīng)用服務(wù)器提供服務(wù)。通過分布式集群處理技術(shù),互聯(lián)網(wǎng)服務(wù)商在降低成本的同時(shí)又能提供可靠的應(yīng)用服務(wù)。而實(shí)現(xiàn)分布式集群部署,首先需要解決客戶端和集群服務(wù)器間交互的會(huì)話Sess1n統(tǒng)一問題,即需要實(shí)現(xiàn)集群間Sess1n的共享機(jī)制,確保集群服務(wù)器對(duì)客戶端的透明性。當(dāng)前,在分布式集群系統(tǒng)下實(shí)現(xiàn)Sess1n統(tǒng)一的機(jī)制主要有以下幾種方法:Sess1n復(fù)制的機(jī)制:一臺(tái)應(yīng)用服務(wù)器的Sess1n數(shù)據(jù)需要廣播復(fù)制到集群的其余應(yīng)用服務(wù)器上,從而實(shí)現(xiàn)Sess1n共享;Sess1n集中管理機(jī)制:提供統(tǒng)一的平臺(tái)進(jìn)行Sess1n管理,從而實(shí)現(xiàn)Sess1n的共享;基于cookie的機(jī)制:基于cookie的機(jī)制將Sess1n保存于客戶端,每次請(qǐng)求均通過客戶端將Sess1n傳遞給服務(wù)器集群,響應(yīng)服務(wù)器根據(jù)Sess1n為客戶端提供服務(wù),確保Sess1n的統(tǒng)一。
[0003]在實(shí)現(xiàn)Sess1n統(tǒng)一的方法中,基于Sess1n復(fù)制的機(jī)制在服務(wù)器節(jié)點(diǎn)持續(xù)增多的情況下,Sess1n復(fù)制機(jī)制在網(wǎng)絡(luò)延時(shí)和帶寬開銷大,特別是當(dāng)Sess1n中保存了較大的對(duì)象,而且對(duì)象變化較快時(shí),系統(tǒng)性能將顯著下降。在Sess1n集中管理機(jī)制中,基于數(shù)據(jù)庫和NFS的共享機(jī)制在讀寫速度上相對(duì)于內(nèi)存慢了一個(gè)數(shù)量級(jí),響應(yīng)時(shí)間長(zhǎng),系統(tǒng)性能差,同時(shí)增加數(shù)據(jù)庫的負(fù)擔(dān);基于Cookie的Sess1n共享機(jī)制很難實(shí)現(xiàn)安全性保證。因此,如何在高可用性、高可靠性和高擴(kuò)展性等前提下對(duì)分布式集群上的會(huì)話進(jìn)行統(tǒng)一處理能夠?yàn)榱素叫杞鉀Q的技術(shù)問題。
【發(fā)明內(nèi)容】
[0004]為解決上述技術(shù)問題,本發(fā)明提供了一種會(huì)話數(shù)據(jù)處理方法和裝置。
[0005]根據(jù)本發(fā)明實(shí)施方式的第一方面,提供了一種會(huì)話數(shù)據(jù)處理方法,該方法可包括:將客戶端的請(qǐng)求轉(zhuǎn)發(fā)至第一應(yīng)用服務(wù)器,其中,所述客戶端和所述第一應(yīng)用服務(wù)器具有一一對(duì)應(yīng)關(guān)系,若所述請(qǐng)求是所述客戶端的首次請(qǐng)求,則所述第一應(yīng)用服務(wù)器本地生成所述請(qǐng)求的會(huì)話sess1n,將所述會(huì)話保存到本地,并將所述會(huì)話提交至緩存服務(wù)器,若所述請(qǐng)求不是所述客戶端的首次請(qǐng)求,則所述第一應(yīng)用服務(wù)器根據(jù)本地保存的所述客戶端的歷史會(huì)話繼續(xù)為所述請(qǐng)求服務(wù),并將本次更新的會(huì)話同步到所述緩存服務(wù)器。
[0006]在本發(fā)明的一些實(shí)施方式中,所述方法還包括:在所述第一應(yīng)用服務(wù)器單點(diǎn)故障的情況下,將所述請(qǐng)求轉(zhuǎn)發(fā)至第二應(yīng)用服務(wù)器,由所述第二應(yīng)用服務(wù)器從所述緩存服務(wù)器獲取所述客戶端的會(huì)話為所述請(qǐng)求服務(wù),并將本次更新后的會(huì)話同步到所述緩存服務(wù)器。
[0007]在本發(fā)明的一些實(shí)施方式中,所述方法還包括:在所述緩存服務(wù)器故障的情況下,若所述請(qǐng)求是所述客戶端的首次請(qǐng)求,則所述第一應(yīng)用服務(wù)器在本地生成所述請(qǐng)求的會(huì)話,將所述會(huì)話保存到本地,然后在所述緩存服務(wù)器恢復(fù)工作時(shí)將所述會(huì)話提交至所述緩存服務(wù)器,若所述請(qǐng)求不是所述客戶端的首次請(qǐng)求,則所述第一應(yīng)用服務(wù)器根據(jù)本地保存的所述客戶端的歷史會(huì)話繼續(xù)為所述請(qǐng)求服務(wù),然后在所述緩存服務(wù)器恢復(fù)工作時(shí)將本地保存的所述客戶端的會(huì)話同步到所述緩存服務(wù)器。
[0008]在本發(fā)明的一些實(shí)施方式中,所述緩存服務(wù)器與所述應(yīng)用服務(wù)器為一對(duì)多的關(guān)系Ο
[0009]在本發(fā)明的一些實(shí)施方式中,所述方法還包括:在所述客戶端的會(huì)話失效時(shí),刪除所述應(yīng)用服務(wù)器和所述緩存服務(wù)器中保存的所述客戶端的會(huì)話。
[0010]根據(jù)本發(fā)明實(shí)施方式的第二方面,提供了一種會(huì)話數(shù)據(jù)處理裝置,該裝置可包括:綁定模塊,用于將客戶端的請(qǐng)求轉(zhuǎn)發(fā)至第一應(yīng)用服務(wù)器,其中,所述客戶端和所述第一應(yīng)用服務(wù)器具有一一對(duì)應(yīng)關(guān)系;會(huì)話管理模塊,用于在所述請(qǐng)求是所述客戶端的首次請(qǐng)求時(shí),在所述第一應(yīng)用服務(wù)器本地生成所述請(qǐng)求的會(huì)話sess1n,將所述會(huì)話保存到本地,并將所述會(huì)話提交至緩存服務(wù)器,在所述請(qǐng)求不是所述客戶端的首次請(qǐng)求時(shí),根據(jù)所述第一應(yīng)用服務(wù)器本地保存的所述客戶端的歷史會(huì)話繼續(xù)為所述請(qǐng)求服務(wù),并將本次更新的會(huì)話同步到所述緩存服務(wù)器。
[0011]在本發(fā)明的一些實(shí)施方式中,所述裝置還包括:第一故障恢復(fù)模塊,用于在所述第一應(yīng)用服務(wù)器單點(diǎn)故障的情況下,將所述請(qǐng)求轉(zhuǎn)發(fā)至第二應(yīng)用服務(wù)器,通過所述第二應(yīng)用服務(wù)器從所述緩存服務(wù)器獲取所述客戶端的會(huì)話為所述請(qǐng)求服務(wù),并將本次更新后的會(huì)話同步到所述緩存服務(wù)器。
[0012]在本發(fā)明的一些實(shí)施方式中,所述裝置還包括:第二故障恢復(fù)模塊,用于在所述緩存服務(wù)器故障的情況下,若所述請(qǐng)求是所述客戶端的首次請(qǐng)求,通過所述第一應(yīng)用服務(wù)器在本地生成所述請(qǐng)求的會(huì)話,將所述會(huì)話保存到本地,然后在所述緩存服務(wù)器恢復(fù)工作時(shí)將所述會(huì)話提交至所述緩存服務(wù)器,若所述請(qǐng)求不是所述客戶端的首次請(qǐng)求,通過所述第一應(yīng)用服務(wù)器根據(jù)本地保存的所述客戶端的歷史會(huì)話繼續(xù)為所述請(qǐng)求服務(wù),然后在所述緩存服務(wù)器恢復(fù)工作時(shí)將本地保存的所述客戶端的會(huì)話同步到所述緩存服務(wù)器。
[0013]在本發(fā)明的一些實(shí)施方式中,所述緩存服務(wù)器與所述應(yīng)用服務(wù)器為一對(duì)多的關(guān)系Ο
[0014]在本發(fā)明的一些實(shí)施方式中,所述會(huì)話管理模塊,還用于在所述客戶端的會(huì)話失效時(shí),刪除所述應(yīng)用服務(wù)器和所述緩存服務(wù)器中保存的所述客戶端的會(huì)話。
[0015]本發(fā)明實(shí)施方式提供的會(huì)話數(shù)據(jù)處理方法和裝置,通過將本地Sess1n管理和Memcache緩存服務(wù)器的Sess1n管理有機(jī)結(jié)合,實(shí)現(xiàn)了集群服務(wù)器之間的Sess1n統(tǒng)一管理,同時(shí)有效避免單點(diǎn)故障造成的Sess1n丟失,確保集群系統(tǒng)的高安全性、高可用性、高可靠性和高擴(kuò)展性等優(yōu)點(diǎn);另外,相對(duì)于Memcache集群方案,本發(fā)明只需要用一臺(tái)Memcache服務(wù)器,降低了集群系統(tǒng)部署的成本;同時(shí),采用服務(wù)器本地Sess1n存儲(chǔ)的方式,減少了對(duì)Memcache緩存服務(wù)器的訪問,降低了網(wǎng)絡(luò)開銷,提高了響應(yīng)速度。
【附圖說明】
[0016]圖1是根據(jù)本發(fā)明一種實(shí)施方式的會(huì)話數(shù)據(jù)處理方法的流程示意圖;
[0017]圖2是根據(jù)本發(fā)明一種實(shí)施方式的會(huì)話數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0018]以下結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明的各個(gè)方面進(jìn)行詳細(xì)闡述。其中,眾所周知的模塊、單元及其相互之間的連接、鏈接、通信或操作沒有示出或未作詳細(xì)說明。并且,所描述的特征、架構(gòu)或功能可在一個(gè)或一個(gè)以上實(shí)施方式中以任何方式組合。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下述的各種實(shí)施方式只用于舉例說明,而非用于限制本發(fā)明的保護(hù)范圍。還可以容易理解,本文所述和附圖所示的各實(shí)施方式中的模塊或單元或處理方式可以按各種不同配置進(jìn)行組合和設(shè)計(jì)。
[0019]參見圖1,圖1是根據(jù)本發(fā)明一種實(shí)施方式的會(huì)話數(shù)據(jù)處理方法的流程示意圖,該方法具體可包括:
[0020]S101,將客戶端的請(qǐng)求轉(zhuǎn)發(fā)至第一應(yīng)用服務(wù)器,其中,所述客戶端和所述第一應(yīng)用服務(wù)器具有對(duì)應(yīng)關(guān)系,
[0021]S102,判斷所述請(qǐng)求是否為該客戶端的首次請(qǐng)求,若是,則執(zhí)行步驟S103,若否,則執(zhí)行步驟S104 ;
[0022]S103,所述第一應(yīng)用服務(wù)器本地生成所述請(qǐng)求的會(huì)話,將所述會(huì)話保存到本地,并將所述會(huì)話提交至緩存服務(wù)器,
[0023]S104,所述第一應(yīng)用服務(wù)器根據(jù)本地保存的所述客戶端的歷史會(huì)話繼續(xù)為所述請(qǐng)求服務(wù),并將本次更新的會(huì)話同步到所述緩存服務(wù)器。
[0024]在本發(fā)明的實(shí)施方式中,會(huì)話數(shù)據(jù)處理主要涉及分布式集群應(yīng)用服務(wù)器和客戶端之間的會(huì)話統(tǒng)一處理。具體而言,本發(fā)明的會(huì)話數(shù)據(jù)處理方法可包括:步驟S101,將客戶端