欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種共享會(huì)話數(shù)據(jù)的系統(tǒng)和方法

文檔序號(hào):8265823閱讀:448來(lái)源:國(guó)知局
一種共享會(huì)話數(shù)據(jù)的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種共享會(huì)話數(shù)據(jù)的系統(tǒng)和方法。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)應(yīng)用都是無(wú)狀態(tài)的,對(duì)于這些應(yīng)用而言,無(wú)法對(duì)客戶端進(jìn)行標(biāo)識(shí),因而無(wú)法得知使用該應(yīng)用的客戶端訪問(wèn)狀態(tài)。為了保證應(yīng)用客戶端在訪問(wèn)是可標(biāo)識(shí)、有狀態(tài)的,目前,大多數(shù)的網(wǎng)絡(luò)應(yīng)用都會(huì)使用到會(huì)話。
[0003]在網(wǎng)絡(luò)應(yīng)用中會(huì)話指的是,用戶通過(guò)互聯(lián)網(wǎng)應(yīng)用的客戶端(比如:瀏覽器)打開(kāi)一個(gè)應(yīng)用開(kāi)始直至關(guān)閉這個(gè)客戶端的這段時(shí)間內(nèi),網(wǎng)絡(luò)應(yīng)用使用會(huì)話標(biāo)識(shí)來(lái)標(biāo)記客戶端,而網(wǎng)絡(luò)應(yīng)用則使用會(huì)話標(biāo)識(shí)對(duì)應(yīng)的會(huì)話數(shù)據(jù)來(lái)記錄客戶端的狀態(tài)數(shù)據(jù)。通過(guò)會(huì)話數(shù)據(jù),網(wǎng)絡(luò)應(yīng)用可以保持客戶端的狀態(tài)數(shù)據(jù)(常見(jiàn)的狀態(tài)數(shù)據(jù)有登錄數(shù)據(jù)、購(gòu)物車數(shù)據(jù)等)。
[0004]就目前常用的技術(shù),會(huì)話標(biāo)識(shí)是打開(kāi)客戶端訪問(wèn)應(yīng)用時(shí),由應(yīng)用產(chǎn)生一個(gè)全局的唯一串,這個(gè)唯一串通過(guò)網(wǎng)格協(xié)議寫入客戶端的存儲(chǔ)區(qū)域中(比如:瀏覽器的Cookie、手機(jī)客戶端存放數(shù)據(jù)的目錄)。與此同時(shí),應(yīng)用在服務(wù)器的內(nèi)存為這個(gè)會(huì)話標(biāo)識(shí)創(chuàng)建一塊獨(dú)立的空間,用于存放客戶端的特定的數(shù)據(jù)。當(dāng)客戶端產(chǎn)生狀態(tài)變化(比如進(jìn)行了登錄操作)后,應(yīng)用在服務(wù)器這個(gè)客戶端會(huì)話標(biāo)識(shí)的內(nèi)存空間中,將該客戶端登錄后的數(shù)據(jù)(如:用戶名、登錄時(shí)間等)放入該空間。等下一次客戶端訪問(wèn)應(yīng)用時(shí),通過(guò)客戶端會(huì)話標(biāo)識(shí)應(yīng)用可以知道當(dāng)前客戶端登錄的數(shù)據(jù)。
[0005]為了能支持更大的訪問(wèn)量,應(yīng)用服務(wù)器一般會(huì)采用服務(wù)器集群,由多臺(tái)服務(wù)器一起提供服務(wù),以分散每臺(tái)服務(wù)器的訪問(wèn)壓力。由于客戶端的會(huì)話數(shù)據(jù)是存放在服務(wù)器內(nèi)存中的,如果當(dāng)前存儲(chǔ)客戶端會(huì)話數(shù)據(jù)在一臺(tái)服務(wù)器上,該用戶下次訪問(wèn)到另外一臺(tái)服務(wù)器上時(shí)就無(wú)法獲取該客戶端的會(huì)話數(shù)據(jù)。目前常用技術(shù)而言,解決集群環(huán)境中會(huì)話數(shù)據(jù)各節(jié)點(diǎn)之間共享的方式,主要有以下幾種:
1、黏性會(huì)話,即在客戶端會(huì)話標(biāo)識(shí)上添加上服務(wù)器集群的節(jié)點(diǎn)編號(hào)、或者根據(jù)客戶端的源IP地址通過(guò)哈希算法算出一個(gè)數(shù)值,再通過(guò)該數(shù)值計(jì)算應(yīng)該訪問(wèn)哪個(gè)服務(wù)器集群的節(jié)點(diǎn),使得同一客戶端的訪問(wèn)均由同一臺(tái)服務(wù)器進(jìn)行處理,這樣可以避免同一客戶端的不同請(qǐng)求由不同的服務(wù)器進(jìn)行處理,而帶來(lái)的會(huì)話數(shù)據(jù)不一致的情況。但這種方式使得會(huì)話數(shù)據(jù)占用的內(nèi)存在各臺(tái)服務(wù)器分布不均勻。對(duì)于用戶而言,只有一個(gè)節(jié)點(diǎn)為其提供服務(wù),若該節(jié)點(diǎn)宕機(jī),將導(dǎo)致被分配到該節(jié)點(diǎn)的會(huì)話數(shù)據(jù)會(huì)部丟失,存在單點(diǎn)故障風(fēng)險(xiǎn)。
[0006]2、會(huì)話復(fù)制,在服務(wù)器集群節(jié)點(diǎn)間同步客戶端的會(huì)話數(shù)據(jù),使用客戶端的會(huì)話數(shù)據(jù)在服務(wù)器集群節(jié)點(diǎn)的內(nèi)存中保持一致,這樣無(wú)論是客戶端訪問(wèn)到哪一臺(tái)服務(wù)器,均可以獲取自己的會(huì)話數(shù)據(jù)。該方式需要使用內(nèi)存數(shù)據(jù)同步等技術(shù)手段對(duì)各節(jié)點(diǎn)內(nèi)存中的會(huì)話數(shù)據(jù)進(jìn)行同步,來(lái)保證每個(gè)服務(wù)器節(jié)點(diǎn)內(nèi)存中的會(huì)話數(shù)據(jù)是一致的,但同步需要耗費(fèi)一定的網(wǎng)絡(luò)資源,勢(shì)必會(huì)造成數(shù)據(jù)同步的延遲,使用時(shí)效率和性能較差。另外,若會(huì)話數(shù)據(jù)很多,會(huì)占用大量的節(jié)點(diǎn)內(nèi)存資源,如果會(huì)話數(shù)據(jù)量超出節(jié)點(diǎn)內(nèi)存的大小,將會(huì)導(dǎo)致節(jié)點(diǎn)宕機(jī),甚至整個(gè)服務(wù)器集群宕機(jī)。
[0007]3、利用于Web應(yīng)用服務(wù)器自帶的功能,將會(huì)話數(shù)據(jù)存放至Memcached之類的緩存服務(wù)器中,從而實(shí)現(xiàn)會(huì)話數(shù)據(jù)的共享,但是該方式只能應(yīng)用在某一 Web應(yīng)用服務(wù)器中,對(duì)于應(yīng)用服務(wù)器升級(jí)或者替換存在一定的風(fēng)險(xiǎn)。
[0008]從上述幾種處理共享會(huì)話數(shù)據(jù)的方式來(lái)看,都存在著不足,因而現(xiàn)有技術(shù)是有待改進(jìn)和提尚的。

【發(fā)明內(nèi)容】

[0009]本發(fā)明的目的在于提供一種高擴(kuò)展性和高性能的共享會(huì)話數(shù)據(jù)的系統(tǒng)和方法。
[0010]本發(fā)明提供的共享會(huì)話數(shù)據(jù)的系統(tǒng),其結(jié)構(gòu)框圖如圖1所示。該共享會(huì)話數(shù)據(jù)系統(tǒng)包括:
至少一個(gè)Web應(yīng)用服務(wù)器;
一個(gè)緩存服務(wù)器A14。
[0011]所述Web應(yīng)用服務(wù)器,用于處理客戶端的HTTP請(qǐng)求并完成所述HTTP請(qǐng)求業(yè)務(wù)邏輯;本發(fā)明中,Web應(yīng)用服務(wù)器是基于Java的Servlet容器,所述Web應(yīng)用服務(wù)器包括:共享會(huì)話處理請(qǐng)求過(guò)濾器All、會(huì)話數(shù)據(jù)處理單元A12、會(huì)話數(shù)據(jù)臨時(shí)存儲(chǔ)單元A13和以及業(yè)務(wù)邏輯處理單元A15 ;
所述緩存服務(wù)器A14,用于存放會(huì)話數(shù)據(jù);會(huì)話數(shù)據(jù)一般是有過(guò)期時(shí)間的,因此,本發(fā)明中的緩存服務(wù)器需要具備以下這些特性:以鍵值為存儲(chǔ)結(jié)構(gòu),緩存數(shù)據(jù)的讀寫性能高,緩存數(shù)據(jù)有過(guò)期時(shí)間,過(guò)期數(shù)據(jù)的能自動(dòng)清理;
所述Web應(yīng)用服務(wù)器接收到由客戶端發(fā)送的HTTP請(qǐng)求后,把請(qǐng)求的HTTP數(shù)據(jù)轉(zhuǎn)換成為請(qǐng)求對(duì)象,并將該請(qǐng)求對(duì)象交由共享會(huì)話處理請(qǐng)求過(guò)濾器All進(jìn)行處理;
所述Web應(yīng)用服務(wù)器程序中通過(guò)請(qǐng)求對(duì)象獲取會(huì)話數(shù)據(jù),所述共享會(huì)話處理請(qǐng)求過(guò)濾器All在攔截到請(qǐng)求對(duì)象后,從請(qǐng)求對(duì)象中獲取會(huì)話數(shù)據(jù)的邏輯進(jìn)行改寫,所述共享會(huì)話處理請(qǐng)求過(guò)濾器All將會(huì)話數(shù)據(jù)在所述Web應(yīng)用服務(wù)器內(nèi)存中進(jìn)行讀寫操作的默認(rèn)行為,更改為在獨(dú)立的緩存服務(wù)器中進(jìn)行,并將請(qǐng)求會(huì)話數(shù)據(jù)存放至緩存服務(wù)器A14中;
所述會(huì)話數(shù)據(jù)處理單元A12,用于與所述緩存服務(wù)器A14針對(duì)會(huì)話數(shù)據(jù)進(jìn)行交互操作,并向All提供會(huì)話數(shù)據(jù)操作指令;
所述會(huì)話數(shù)據(jù)臨時(shí)存取單元A13,用于臨時(shí)存儲(chǔ)當(dāng)前HTTP請(qǐng)求中所述會(huì)話數(shù)據(jù)處理單元A12向所述緩存服務(wù)器A14獲取的會(huì)話數(shù)據(jù);
所述業(yè)務(wù)邏輯處理單元A15是用于處理所述Web應(yīng)用服務(wù)器接收到的http請(qǐng)求所表示的業(yè)務(wù)邏輯,接收共享會(huì)話處理請(qǐng)求過(guò)濾器All輸出的包含會(huì)話數(shù)據(jù)的請(qǐng)求對(duì)象。
[0012]本發(fā)明中,所述會(huì)話數(shù)據(jù)處理單元A12,用于處理會(huì)話數(shù)據(jù)如何在緩存服務(wù)器A14進(jìn)行讀出、寫入、更新和刪除等操作。該處理單元主要包括緩存服務(wù)器讀寫模塊A121和會(huì)話數(shù)據(jù)序列化模塊A122。
[0013]所述緩存服務(wù)器讀寫模塊A121,用于Web應(yīng)用服務(wù)器與緩存服務(wù)器14進(jìn)行數(shù)據(jù)通信,管理Web應(yīng)用服務(wù)器與緩存服務(wù)器14之間的數(shù)據(jù)通信連接。
[0014]所述緩存服務(wù)器讀寫模塊A121還包括對(duì)緩存服務(wù)器14的操作,即對(duì)緩存服務(wù)器14進(jìn)行會(huì)話數(shù)據(jù)的讀出、寫入、更新和刪除操作。
[0015]所述緩存服務(wù)器讀寫模塊A121的讀出操作,用于通過(guò)會(huì)話標(biāo)識(shí)讀取存放于緩存服務(wù)器中的會(huì)話數(shù)據(jù)。
[0016]所述緩存服務(wù)器讀寫模塊A121的寫入操作,用于在緩存服務(wù)器中寫入新創(chuàng)建的會(huì)話數(shù)據(jù)。
[0017]所述緩存服務(wù)器讀寫模塊A121的更新操作,用于將更新后的會(huì)話數(shù)據(jù)更新至當(dāng)前會(huì)話標(biāo)識(shí)的會(huì)話數(shù)據(jù)中。
[0018]所述緩存服務(wù)器讀寫模塊A121的刪除操作,用于當(dāng)客戶端退出登錄或者注銷會(huì)話時(shí),從緩存服務(wù)器中刪除會(huì)話數(shù)據(jù)。
[0019]為了避免頻繁地對(duì)緩存服務(wù)器進(jìn)行讀、寫操作,在緩存服務(wù)器讀寫模塊A121進(jìn)行讀出操作后,若能讀取到會(huì)話數(shù)據(jù)時(shí),將會(huì)話數(shù)據(jù)保存至?xí)挃?shù)據(jù)臨時(shí)存取單元A13中臨時(shí)存放。
[0020]所述會(huì)話數(shù)據(jù)臨時(shí)存取單元A13,用于臨時(shí)存儲(chǔ)當(dāng)前請(qǐng)求中的數(shù)據(jù),Web應(yīng)用服務(wù)器使用一個(gè)線程處理一個(gè)客戶端的HTTP請(qǐng)求,該臨時(shí)存儲(chǔ)單元的內(nèi)存空間是與請(qǐng)求線程相關(guān)的,因此,不同的訪問(wèn)請(qǐng)求這塊內(nèi)存空間是各自獨(dú)立、互不影響的。
[0021]使用臨時(shí)存儲(chǔ)單元A13的數(shù)據(jù)寫入操作將數(shù)據(jù)存放至?xí)挃?shù)據(jù)臨時(shí)存取單元A13的內(nèi)存容器中,通過(guò)get方法將會(huì)話數(shù)據(jù)臨時(shí)存取單元A13的內(nèi)存容器中當(dāng)前請(qǐng)求的會(huì)話數(shù)據(jù)讀取出來(lái)使用。會(huì)話數(shù)據(jù)在該單元中多次讀取和多次更新。
[0022]當(dāng)前請(qǐng)求需要再次讀取會(huì)話數(shù)據(jù)時(shí),緩存服務(wù)器讀寫模塊A121首先檢查會(huì)話數(shù)據(jù)臨時(shí)存取單元A13中是否存放有當(dāng)前請(qǐng)求的會(huì)話數(shù)據(jù),即通過(guò)臨時(shí)存儲(chǔ)單元A13的數(shù)據(jù)讀取操作獲取的數(shù)據(jù)是否是空來(lái)判斷當(dāng)前請(qǐng)求的會(huì)話數(shù)據(jù)臨時(shí)存取單元是否已經(jīng)存放有會(huì)話數(shù)據(jù)。若已經(jīng)存在,則不再對(duì)緩存服務(wù)器進(jìn)行讀取操作,而是直接將存放于會(huì)話數(shù)據(jù)臨時(shí)存取單元A13中的會(huì)話數(shù)據(jù)返回。若不存在,則對(duì)緩存服務(wù)器14進(jìn)行會(huì)話數(shù)據(jù)的讀取操作,并將讀取到的會(huì)話數(shù)據(jù)保存至?xí)挃?shù)據(jù)臨時(shí)存取單元Al3以便于之后的再次使用。
[0023]所述業(yè)務(wù)邏輯處理單元A15是用于處理所述Web應(yīng)用服務(wù)器接收到的http請(qǐng)求所表示的業(yè)務(wù)邏輯,接收共享會(huì)話處理請(qǐng)求過(guò)濾器All輸出的包含會(huì)話數(shù)據(jù)的請(qǐng)求對(duì)象;業(yè)務(wù)邏輯處理單元A15用于處理一個(gè)Web請(qǐng)求,以完成該請(qǐng)求所表示的業(yè)務(wù)邏輯
當(dāng)前第1頁(yè)1 2 3 4 5 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
遂溪县| 海原县| 保靖县| 西贡区| 江川县| 阿城市| 丹凤县| 太康县| 沙坪坝区| 衡东县| 淳安县| 贵德县| 团风县| 莒南县| 甘泉县| 永胜县| 拜城县| 永济市| 威海市| 龙泉市| 柳州市| 柘城县| 九江县| 石楼县| 科尔| 青岛市| 百色市| 册亨县| 曲沃县| 政和县| 宣化县| 遂宁市| 大渡口区| 芦溪县| 江孜县| 耿马| 武隆县| 行唐县| 苏尼特左旗| 张家界市| 安福县|