亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于時間輪盤和用戶行為的活躍用戶集維護系統(tǒng)及方法與流程

文檔序號:11881158閱讀:306來源:國知局
基于時間輪盤和用戶行為的活躍用戶集維護系統(tǒng)及方法與流程

本發(fā)明涉及視頻直播中活躍用戶集的維護技術(shù)領(lǐng)域,具體來講是一種基于時間輪盤和用戶行為的活躍用戶集維護系統(tǒng)及方法。



背景技術(shù):

隨著互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,越來越多的用戶可以使用電腦、手機等終端通過網(wǎng)絡(luò)觀看在線視頻直播。在線視頻直播是指利用互聯(lián)網(wǎng)網(wǎng)絡(luò)資源進行的現(xiàn)場視頻直播服務(wù),通過現(xiàn)場的視頻拍攝同步發(fā)布到網(wǎng)絡(luò)上,用戶可以同一時間在網(wǎng)絡(luò)上看到實時的現(xiàn)場情況。

在視頻直播網(wǎng)站的業(yè)務(wù)場景中,很多直播間主播在發(fā)起互動活動或者網(wǎng)站在發(fā)起專題活動時,需要只針對觀看當(dāng)前直播間的活躍用戶或者在網(wǎng)站上活躍的用戶進行互動,這時就需要通過一個活躍用戶集來對活躍用戶進行實時記錄和更新。

目前,在視頻直播領(lǐng)域中,維護活躍用戶集的通常思路為:當(dāng)服務(wù)器連續(xù)一段時間內(nèi)(通常需要自定義該時間,該時間即為超時時長Timeout)沒有收到用戶行為數(shù)據(jù),就把該用戶剔除出活躍用戶集。具體來說,通常分為以下兩種方式:

(1)針對每個用戶,保存相應(yīng)的“最后收到行為數(shù)據(jù)的時間lastReceiveTime”;然后通過一個定時器,每秒鐘遍歷一遍所有用戶的用戶會話,剔除那些滿足以下公式的用戶會話:

當(dāng)前時間now-最后收到行為數(shù)據(jù)的時間lastReceiveTime>超時時長Timeout。

但是,由于這種做法全局只設(shè)有一個重復(fù)定時器repeated timer,因此每次超時都要檢查全部用戶會話信息,如果用戶會話數(shù)目比較大(如同時保持上萬個用戶),則這種方式的檢查量就會很大,且整個檢查過程耗時嚴(yán)重,降低了實時性。

(2)基本與第一種方式相同,不同的是為每個用戶會話設(shè)置一個一次性定時器one-shot timer,在定時器超時的時候就斷開本會話,且在每次收到用戶行為數(shù)據(jù)的時候更新該定時器。

此方法雖然一定程度上提高了檢查的效率,但是需要設(shè)置很多一次性定時器,并需要頻繁地更新定時器。如果連接數(shù)目較大,則會對“待更新計時器隊列”造成壓力,嚴(yán)重時還會造成系統(tǒng)擁塞甚至崩潰。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是為了克服上述背景技術(shù)的不足,提供一種基于時間輪盤和用戶行為的活躍用戶集維護系統(tǒng)及方法,能基于正常的用戶頁面行為產(chǎn)生活躍用戶集,并利用時間輪盤來對活躍用戶集保持更新,不但及時高效,而且不會對系統(tǒng)造成較大負(fù)荷,保證了互動活動的有效進行。

為達到以上目的,本發(fā)明提供一種基于時間輪盤和用戶行為的活躍用戶集維護系統(tǒng),包括若干用戶終端和一個直播平臺服務(wù)器,每個用戶終端內(nèi)設(shè)置有頁面行為記錄模塊,直播平臺服務(wù)器內(nèi)設(shè)置有緩存預(yù)處理模塊、分布式實時計算模塊和活躍用戶集功能模塊;

所述頁面行為記錄模塊用于:根據(jù)用戶在觀看直播過程中產(chǎn)生的若干頁面行為,記錄相應(yīng)的頁面行為信息并提交給直播平臺服務(wù)器;

所述緩存預(yù)處理模塊用于:對各用戶終端提交的頁面行為信息進行緩存和預(yù)處理;定時將緩存和預(yù)處理后的所有頁面行為信息以若干數(shù)據(jù)片的形式發(fā)送至分布式實時計算模塊;

所述分布式實時計算模塊包括若干個實時計算子模塊,分布式實時計算模塊用于將收到的每個數(shù)據(jù)片按照哈希策略分配給一個指定的實時計算子模塊;每個實時計算子模塊對數(shù)據(jù)片中的頁面行為信息進行解析并驗證,將驗證通過的頁面行為信息對應(yīng)的用戶添加到當(dāng)前時間對應(yīng)的活躍用戶集分片中,所述活躍用戶集分片是將活躍用戶集按照指定的活躍計算時間段劃分成的若干分片;

所述活躍用戶集功能模塊用于:以指定的活躍計算時間段為周期,將當(dāng)前時間對應(yīng)的活躍用戶集分片更新到已創(chuàng)建的時間輪盤中,所述時間輪盤為一種數(shù)據(jù)結(jié)構(gòu),其主體是一個首尾相連的循環(huán)列表,該循環(huán)列表中包含有若干個稱之為槽的單元,每個槽中填充有一個活躍用戶集分片,且該循環(huán)列表還具有一個指向隊尾的指針。

在上述技術(shù)方案的基礎(chǔ)上,所述頁面行為信息包括頁面URL(Uniform/Universal Resource Locator,統(tǒng)一資源定位符)、事件ID、行為事件類型、用戶ID和按照特定規(guī)則生成的識別碼,識別碼的生成規(guī)則為:時間戳+用戶終端設(shè)備API(Application Programming Interface,應(yīng)用編程接口)獲取的終端設(shè)備ID+隨機數(shù)。

在上述技術(shù)方案的基礎(chǔ)上,識別碼為固定長度,且經(jīng)加密處理。

在上述技術(shù)方案的基礎(chǔ)上,所述活躍用戶集功能模塊以指定的活躍計算時間段為周期,將當(dāng)前時間對應(yīng)的活躍用戶集分片更新到已創(chuàng)建的時間輪盤中時,具體操作過程為:每經(jīng)過指定的活躍計算時間段后,時間輪盤中每個槽內(nèi)的活躍用戶集分片向隊首前移一格;將當(dāng)前時間對應(yīng)的活躍用戶集分片更新到位于隊尾的槽內(nèi);將時間輪盤上的指針向隊首前移一格。

本發(fā)明還提供一種基于時間輪盤和用戶行為的活躍用戶集維護方法,包括以下步驟:A、每個用戶終端的頁面行為記錄模塊根據(jù)用戶在觀看直播過程中產(chǎn)生的若干頁面行為,記錄下相應(yīng)的頁面行為信息;將記錄的頁面行為信息提交給直播平臺服務(wù)器;B、直播平臺服務(wù)器的緩存預(yù)處理模塊對各個用戶終端提交的頁面行為信息進行緩存和預(yù)處理;C、緩存預(yù)處理模塊定時將緩存和預(yù)處理后的所有頁面行為信息以若干數(shù)據(jù)片的形式發(fā)送至分布式實時計算模塊;分布式實時計算模塊將每個數(shù)據(jù)片按照哈希策略分配給一個指定的實時計算子模塊;D、每個實時計算子模塊對數(shù)據(jù)片中的頁面行為信息進行解析并驗證,將驗證通過的頁面行為信息對應(yīng)的用戶添加到當(dāng)前時間對應(yīng)的活躍用戶集分片中;E、活躍用戶集功能模塊以活躍計算時間段為周期,定期將當(dāng)前時間對應(yīng)的活躍用戶集分片更新到已創(chuàng)建的時間輪盤中。

在上述技術(shù)方案的基礎(chǔ)上,步驟A中所述頁面行為信息包括頁面URL、事件ID、行為事件類型、用戶ID和按特定規(guī)則生成的識別碼,識別碼的生成規(guī)則為:時間戳+用戶終端設(shè)備API獲取的終端設(shè)備ID+隨機數(shù);步驟B中,所述緩存預(yù)處理模塊進行緩存時,會丟棄不符合要求的頁面行為信息;所述不符合要求的頁面行為信息包括:頁面URL非法的頁面行為信息、事件ID無效的頁面行為信息、事件類型枚舉值非法的頁面行為信息、用戶ID為空或者用戶ID不符合數(shù)據(jù)字段類型的頁面行為信息、時間戳格式錯誤的頁面行為信息、以及用戶終端類型標(biāo)識非法的頁面行為信息。

在上述技術(shù)方案的基礎(chǔ)上,步驟C中,緩存預(yù)處理模塊定時將緩存和預(yù)處理后的所有頁面行為信息以若干數(shù)據(jù)片的形式發(fā)送至分布式實時計算模塊,具體包括以下操作:緩存預(yù)處理模塊每隔1秒鐘將當(dāng)前緩存和預(yù)處理后的所有頁面行為信息發(fā)送至分布式實時計算模塊,每次發(fā)送時將頁面行為信息組合成若干小于等于1M的數(shù)據(jù)片進行發(fā)送。

在上述技術(shù)方案的基礎(chǔ)上,步驟C中,分布式實時計算模塊將每個數(shù)據(jù)片按照哈希策略分配給一個指定的實時計算子模塊,具體包括以下操作:分布式實時計算模塊為每個數(shù)據(jù)片分配一個唯一的ID號,將該ID號按實時計算子模塊的個數(shù)取模,獲得的余數(shù)則對應(yīng)指定的實時計算子模塊的ID號;將數(shù)據(jù)片分配給對應(yīng)ID號的實時計算子模塊。

在上述技術(shù)方案的基礎(chǔ)上,步驟A中所述頁面行為信息包括頁面URL、事件ID、行為事件類型、用戶ID和按照特定規(guī)則生成的識別碼,識別碼的生成規(guī)則為:時間戳+用戶終端設(shè)備API獲取的終端設(shè)備ID+隨機數(shù);步驟D具體包括以下操作:每個實時計算子模塊對數(shù)據(jù)片中的頁面行為信息進行解析,根據(jù)解析的頁面行為信息的識別碼判斷該頁面行為信息是否有效,若為無效,直接丟棄該頁面行為信息,結(jié)束;若為有效,則對該頁面行為信息的行為事件類型進行驗證,若驗證失敗,則直接丟棄該頁面行為信息,結(jié)束,若驗證成功,將該頁面行為信息的用戶ID添加到當(dāng)前時間對應(yīng)的活躍用戶集分片中。

在上述技術(shù)方案的基礎(chǔ)上,步驟E具體包括以下操作:每經(jīng)過指定的活躍計算時間段后,時間輪盤中每個槽內(nèi)的活躍用戶集分片向隊首前移一格;將當(dāng)前時間對應(yīng)的活躍用戶集分片更新到位于隊尾的槽內(nèi);將時間輪盤上的指針向隊首前移一格。

本發(fā)明的有益效果在于:

1、本發(fā)明基于正常的用戶頁面行為產(chǎn)生相應(yīng)的活躍用戶集分片,該活躍用戶集分片是將活躍用戶集按照指定的活躍計算時間段劃分成的若干分片,只有用戶頁面行為正常的用戶才作為活躍用戶添加到到與當(dāng)前時間對應(yīng)的活躍用戶集分片中;在此基礎(chǔ)上,同時利用時間輪盤來對活躍用戶集保持更新,以指定的活躍計算時間段為周期,定期將當(dāng)前時間對應(yīng)的活躍用戶集分片更新到已創(chuàng)建的時間輪盤中,從而完成對活躍用戶集的及時維護。

與現(xiàn)有技術(shù)相比,本發(fā)明并不是采用傳統(tǒng)的重復(fù)定時器或一次性定時器,而是基于用戶行為和時間輪盤來對活躍用戶集進行維護,不但及時高效,而且不會對系統(tǒng)造成較大負(fù)荷,保證了互動活動的有效進行。

2、本發(fā)明中,活躍用戶集分片是按照指定的活躍計算時間段進行劃分的,且活躍用戶集功能模塊也是以指定的活躍計算時間段為維護周期。該活躍計算時間段可根據(jù)需要自行設(shè)置和調(diào)整,活躍用戶集分片的個數(shù)也就可以相應(yīng)調(diào)整,這就使得活躍用戶的統(tǒng)計顆粒度可根據(jù)需要進行設(shè)置和調(diào)整(即可按小時活躍度、分鐘活躍度或其他活躍度來統(tǒng)計計算),且相應(yīng)的時間輪盤周期也可對應(yīng)調(diào)整(即可按1小時維護、1分鐘維護或其他周期來維護),靈活性強,適用性高。

3、本發(fā)明中,直播平臺服務(wù)器設(shè)置有緩存預(yù)處理模塊,該緩存預(yù)處理模塊不僅能對各用戶終端提交的頁面行為信息進行緩存和預(yù)處理,還能定時將緩存和預(yù)處理后的所有頁面行為信息以若干數(shù)據(jù)片的形式發(fā)送至分布式實時計算模塊;并且,該分布式實時計算模塊由若干個實時計算子模塊組成,每個數(shù)據(jù)片被分配到指定的一個實時計算子模塊進行處理,多個實時計算子模塊就能同時處理多個數(shù)據(jù)片,處理效率極高,實時性更強。

4、本發(fā)明中,對數(shù)據(jù)片是按照哈希策略來選擇所要提交的實時計算子模塊的,目的是為了提高分布式實時計算模塊的水平擴展能力,使得分布式實時計算模塊可以根據(jù)要處理的數(shù)據(jù)量的規(guī)模來相應(yīng)增減實時計算子模塊的個數(shù)。

附圖說明

圖1為本發(fā)明實施例中基于時間輪盤和用戶行為的活躍用戶集維護系統(tǒng)的結(jié)構(gòu)框圖;

圖2為時間輪盤的結(jié)構(gòu)示意圖;

圖3為本發(fā)明實施例中基于時間輪盤和用戶行為的活躍用戶集維護方法的流程圖。

具體實施方式

下面結(jié)合附圖及具體實施例對本發(fā)明作進一步的詳細(xì)描述。

參見圖1所示,本發(fā)明實施例提供一種基于時間輪盤和用戶行為的活躍用戶集維護系統(tǒng),包括若干用戶終端和一個直播平臺服務(wù)器,每個用戶終端內(nèi)設(shè)置有頁面行為記錄模塊,直播平臺服務(wù)器內(nèi)設(shè)置有緩存預(yù)處理模塊、分布式實時計算模塊和活躍用戶集功能模塊。

其中,頁面行為記錄模塊用于:根據(jù)用戶在觀看直播過程中產(chǎn)生的若干頁面行為,記錄下相應(yīng)的頁面行為信息;將記錄的頁面行為信息進行編碼后提交給直播平臺服務(wù)器。

可以理解的是,用戶在觀看直播過程中產(chǎn)生的頁面行為主要包括:頁面加載行為和頁面功能點擊行為。頁面行為信息包括若干用于識別頁面行為的標(biāo)識:頁面URL、事件ID(每個頁面行為都有一個唯一的ID)、行為事件類型(加載、點擊等)、用戶ID(即用戶唯一性的ID)和按照特定規(guī)則生成的識別碼。其中,識別碼的生成規(guī)則為:時間戳+用戶終端設(shè)備API獲取的終端設(shè)備ID(終端設(shè)備ID是用戶終端設(shè)備的唯一ID)+隨機數(shù);該識別碼為固定長度,且生成后經(jīng)加密處理。

緩存預(yù)處理模塊用于:對各用戶終端提交的頁面行為信息進行緩存和預(yù)處理;定時將緩存和預(yù)處理后的所有頁面行為信息以若干數(shù)據(jù)片的形式發(fā)送至分布式實時計算模塊。

分布式實時計算模塊包括若干個實時計算子模塊,分布式實時計算模塊用于將收到的每個數(shù)據(jù)片按照哈希策略分配給一個指定的實時計算子模塊;每個實時計算子模塊對數(shù)據(jù)片中的頁面行為信息進行解析并驗證,將驗證通過的頁面行為信息的用戶ID添加到當(dāng)前時間對應(yīng)的活躍用戶集分片中,該活躍用戶集分片是指:預(yù)先將活躍用戶集按照指定的活躍計算時間段劃分成的若干分片。例如:若指定的活躍計算時間段為1小時,則活躍用戶集對應(yīng)一天24小時,就有24個相應(yīng)的活躍用戶集分片;若指定的活躍計算時間段為1分鐘,則活躍用戶集對應(yīng)一天24*60=1440分鐘,就有1440個相應(yīng)的活躍用戶集分片。

活躍用戶集功能模塊用于:以指定的活躍計算時間段為周期(如以1小時或1分鐘等為周期),將當(dāng)前時間對應(yīng)的活躍用戶集分片更新到已創(chuàng)建的時間輪盤中;如圖2所示,該時間輪盤為一種數(shù)據(jù)結(jié)構(gòu),其主體是一個首尾相連的循環(huán)列表(circular buffer),該循環(huán)列表中包含有若干個稱之為槽(slot)的單元,每個槽中填充有一個活躍用戶集分片,且該循環(huán)列表還具有一個指向隊尾的指針(tail)。

參見圖3所示,本發(fā)明實施例還提供一種應(yīng)用上述系統(tǒng)的基于時間輪盤和用戶行為的活躍用戶集維護方法,包括以下步驟:

步驟S1:每個用戶終端的頁面行為記錄模塊根據(jù)用戶在觀看直播過程中產(chǎn)生的若干頁面行為,記錄下相應(yīng)的頁面行為信息;將記錄的頁面行為信息組裝成JSON格式,并對JSON字符串進行BASE64編碼;將編碼后的頁面行為信息提交給直播平臺服務(wù)器,轉(zhuǎn)入步驟S2。

步驟S2:直播平臺服務(wù)器的緩存預(yù)處理模塊對各個用戶終端提交的頁面行為信息進行緩存并預(yù)處理(統(tǒng)一數(shù)據(jù)格式),轉(zhuǎn)入步驟S3。

具體來說,緩存預(yù)處理模塊進行緩存的具體過程為:對各個用戶終端提交的頁面行為信息的JSON字符串進行BASE64解碼,丟棄不符合要求的頁面行為信息。其中,不符合要求的頁面行為信息包括:頁面URL非法的頁面行為信息、事件ID無效的頁面行為信息、事件類型枚舉值非法的頁面行為信息、用戶ID為空或者用戶ID不符合數(shù)據(jù)字段類型的頁面行為信息、時間戳格式錯誤的頁面行為信息、以及用戶終端類型標(biāo)識非法的頁面行為信息等。

并且,頁面行為信息經(jīng)預(yù)處理之后的數(shù)據(jù)格式如下:

步驟S3:緩存預(yù)處理模塊定時將緩存和預(yù)處理后的所有頁面行為信息以若干數(shù)據(jù)片的形式發(fā)送至分布式實時計算模塊;分布式實時計算模塊將收到的每個數(shù)據(jù)片按照哈希策略分配給一個指定的實時計算子模塊,轉(zhuǎn)入步驟S4。

實際操作時,步驟S3中緩存預(yù)處理模塊定時將緩存和預(yù)處理后的所有頁面行為信息以若干數(shù)據(jù)片的形式發(fā)送至分布式實時計算模塊,具體包括以下操作:緩存預(yù)處理模塊每隔1秒鐘將當(dāng)前緩存和預(yù)處理后的所有頁面行為信息發(fā)送至分布式實時計算模塊,每次發(fā)送時將頁面行為信息組合成若干小于等于1M的數(shù)據(jù)片進行發(fā)送,即每個數(shù)據(jù)片由至少一個完整的頁面行為信息組成,且組成的數(shù)據(jù)片大小小于等于1M。例如:當(dāng)前緩存的頁面行為信息一共有三個,其大小分別為0.3M、0.4M和0.5M,則此次發(fā)送時,可將0.3M、0.4M的兩個頁面行為信息組成一個數(shù)據(jù)片,再將0.5M的頁面行為信息組成另一個數(shù)據(jù)片;最后將這兩個數(shù)據(jù)片一起發(fā)送至分布式實時計算模塊。

進一步地,步驟S3中分布式實時計算模塊將收到的每個數(shù)據(jù)片按照哈希策略分配給一個指定的實時計算子模塊,具體包括以下操作:分布式實時計算模塊為每個數(shù)據(jù)片分配一個唯一的ID號,將該ID號按照實時計算子模塊的個數(shù)取模,獲得的余數(shù)則對應(yīng)指定的實時計算子模塊的ID號;將數(shù)據(jù)片分配給對應(yīng)ID號的實時計算子模塊。本發(fā)明中,對數(shù)據(jù)片按哈希策略來選擇所要提交的實時計算子模塊,目的是為了提高分布式實時計算模塊的水平擴展能力,使得分布式實時計算模塊可以根據(jù)要處理的數(shù)據(jù)量的規(guī)模來相應(yīng)增減實時計算子模塊的個數(shù)。

步驟S4:每個實時計算子模塊對數(shù)據(jù)片中的頁面行為信息進行解析,根據(jù)解析的頁面行為信息的識別碼判斷該頁面行為信息是否有效,若為有效,則轉(zhuǎn)入步驟S5;否則,直接丟棄該用戶頁面行為信息,結(jié)束。

其中,判斷該頁面行為信息是否有效的具體過程如下:對頁面行為信息中的識別碼進行解密,取出時間戳和終端設(shè)備ID,分別校驗時間戳是否在合理范圍內(nèi)(即時間戳與當(dāng)前服務(wù)器的時間差是否在一分鐘內(nèi))、終端設(shè)備ID是否符合規(guī)范(即再校驗終端設(shè)備ID是否滿足識別碼的生成規(guī)則);若上述校驗均通過,則判定該頁面行為信息是有效的,否則,判定為無效的。

步驟S5:實時計算子模塊對該頁面行為信息的行為事件類型進行驗證,若驗證通過,則將驗證通過的頁面行為信息的用戶ID添加到當(dāng)前時間對應(yīng)的一個活躍用戶集分片中,轉(zhuǎn)入步驟S6;若驗證未通過,則直接丟棄該頁面行為信息,結(jié)束。

步驟S6:活躍用戶集功能模塊以指定的活躍計算時間段為周期,定期將當(dāng)前時間對應(yīng)的活躍用戶集分片更新到已創(chuàng)建的時間輪盤中,結(jié)束。

具體來說,以指定的活躍計算時間段為周期,定期將當(dāng)前時間對應(yīng)的活躍用戶集分片更新到已創(chuàng)建的時間輪盤中,具體包括以下操作:

步驟S601:每經(jīng)過指定的活躍計算時間段后,時間輪盤中每個槽內(nèi)的活躍用戶集分片向隊首前移一格(本發(fā)明中,定義沿順時針方向向隊首移動為前移),此時,位于隊首的槽內(nèi)的活躍用戶集分片被移出并銷毀,位于隊尾的槽為空,轉(zhuǎn)入步驟S602;

步驟S602:將當(dāng)前時間對應(yīng)的活躍用戶集分片更新到位于隊尾的槽內(nèi),轉(zhuǎn)入步驟S603;

步驟S603:將時間輪盤上的指針向隊首前移一格。

本發(fā)明不局限于上述實施方式,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內(nèi)。

本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1