1.一種基于時(shí)間輪盤和彈幕行為的活躍用戶集維護(hù)方法,其特征在于,該方法包括以下步驟:
A、根據(jù)用戶觀看直播時(shí)發(fā)送的彈幕數(shù)據(jù)生成彈幕信息,彈幕信息中包括若干彈幕行為識(shí)別標(biāo)識(shí),轉(zhuǎn)到步驟B;
B、根據(jù)彈幕行為識(shí)別標(biāo)識(shí)確定符合規(guī)定的彈幕信息,對(duì)符合規(guī)定的彈幕信息進(jìn)行緩存和預(yù)處理后,得到彈幕行為預(yù)處理數(shù)據(jù),轉(zhuǎn)到步驟C;
C、將彈幕行為預(yù)處理數(shù)據(jù)組成若干數(shù)據(jù)片,每片數(shù)據(jù)片包括至少1條彈幕行為預(yù)處理數(shù)據(jù);定時(shí)將當(dāng)前所有緩存的數(shù)據(jù)片,按照哈希策略分配為若干組,轉(zhuǎn)到步驟D;
D、確定每組數(shù)據(jù)片中所有驗(yàn)證通過的彈幕行為預(yù)處理數(shù)據(jù);將所有驗(yàn)證通過的彈幕行為預(yù)處理數(shù)據(jù)對(duì)應(yīng)的用戶ID,更新至與當(dāng)前時(shí)間對(duì)應(yīng)的活躍用戶集分片中,轉(zhuǎn)到步驟E;所述活躍用戶集分片是指:預(yù)先將活躍用戶集按照指定的活躍計(jì)算時(shí)間段劃分成的若干分片;
E、定時(shí)將更新后的活躍用戶集分片添加至預(yù)先創(chuàng)建的時(shí)間輪盤中。
2.如權(quán)利要求1所述的基于時(shí)間輪盤和彈幕行為的活躍用戶集維護(hù)方法,其特征在于:步驟A中所述彈幕行為識(shí)別標(biāo)識(shí)包括:直播間IP地址、用戶發(fā)送的彈幕數(shù)據(jù)、用戶ID和識(shí)別碼;識(shí)別碼為固定長度,生成后會(huì)進(jìn)行加密;識(shí)別碼的生成規(guī)則為:由時(shí)間戳、用戶使用的終端設(shè)備ID和隨機(jī)數(shù)排列而成;
在此基礎(chǔ)上,步驟B中所述符合規(guī)定的彈幕信息中的彈幕行為識(shí)別標(biāo)識(shí)需要同時(shí)滿足以下條件:直播間IP地址的格式合法、用戶發(fā)送的彈幕數(shù)據(jù)有效、用戶ID不為空、用戶ID符合數(shù)據(jù)字段類型、時(shí)間戳格式正確、用戶終端類型標(biāo)識(shí)合法。
3.如權(quán)利要求2所述的基于時(shí)間輪盤和彈幕行為的活躍用戶集維護(hù)方法,其特征在于:步驟D中所述確定每組數(shù)據(jù)片中所有驗(yàn)證通過的彈幕行為預(yù)處理數(shù)據(jù),具體包括以下流程:分別對(duì)每組數(shù)據(jù)片中所有的彈幕行為預(yù)處理數(shù)據(jù)的識(shí)別碼進(jìn)行解密,得到時(shí)間戳和終端設(shè)備ID;判斷時(shí)間戳是否在合理范圍內(nèi)、且終端設(shè)備ID符合規(guī)范,若是,確定當(dāng)前彈幕行為預(yù)處理數(shù)據(jù)驗(yàn)證通過,否則確定當(dāng)前彈幕行為預(yù)處理數(shù)據(jù)驗(yàn)證未通過,丟棄當(dāng)前彈幕行為預(yù)處理數(shù)據(jù)。
4.如權(quán)利要求1至3任一項(xiàng)所述的基于時(shí)間輪盤和彈幕行為的活躍用戶集維護(hù)方法,其特征在于:步驟C中所述將當(dāng)前所有緩存的數(shù)據(jù)片,按照哈希策略分配為若干組的具體流程為:定義若干組的總數(shù)量為N,為每片數(shù)據(jù)片分配一個(gè)唯一的ID號(hào)UUID;將每個(gè)UUID和N進(jìn)行取模運(yùn)算,取模運(yùn)算得到的余數(shù)相同的所有數(shù)據(jù)片為相同組。
5.如權(quán)利要求1至3任一項(xiàng)所述的基于時(shí)間輪盤和彈幕行為的活躍用戶集維護(hù)方法,其特征在于:步驟E中所述時(shí)間輪盤包括1個(gè)首尾相連的環(huán)形數(shù)據(jù)結(jié)構(gòu)緩沖循環(huán)隊(duì)列,環(huán)形數(shù)據(jù)結(jié)構(gòu)緩沖循環(huán)隊(duì)列分為若干單元槽,每個(gè)單元槽中填充有一片活躍用戶集分片;環(huán)形數(shù)據(jù)結(jié)構(gòu)緩沖循環(huán)隊(duì)列中設(shè)置有1個(gè)指向隊(duì)尾單元槽的指針;
在此基礎(chǔ)上,步驟E具體包括以下流程:定義時(shí)間輪盤中的順時(shí)針方向?yàn)殛?duì)尾至隊(duì)首方向,逆時(shí)針方向?yàn)殛?duì)首至隊(duì)尾方向;定時(shí)周期過后,將時(shí)間輪盤中隊(duì)首單元槽內(nèi)的活躍用戶集分片移出,其余每個(gè)單元槽內(nèi)的活躍用戶集分片,分別按照順時(shí)針方向移動(dòng)至下一個(gè)單元槽;將步驟D中更新后的活躍用戶集分片添加至?xí)r間輪盤隊(duì)尾的單元槽,將指針按照順時(shí)針方向移動(dòng)至下一個(gè)單元槽。
6.一種實(shí)現(xiàn)權(quán)利要求1至5任一項(xiàng)所述方法的基于時(shí)間輪盤和彈幕行為的活躍用戶集維護(hù)系統(tǒng),其特征在于,該系統(tǒng)包括位于每個(gè)終端設(shè)備上的彈幕信息生成模塊、位于服務(wù)器上的緩存預(yù)處理模塊、位于服務(wù)器上的數(shù)據(jù)片組成模塊、位于服務(wù)器上的若干實(shí)時(shí)計(jì)算模塊、以及位于服務(wù)器上的活躍用戶集功能模塊;
彈幕信息生成模塊用于:根據(jù)用戶觀看直播時(shí)發(fā)送的彈幕數(shù)據(jù)生成彈幕信息,彈幕信息中包括若干彈幕行為識(shí)別標(biāo)識(shí),將彈幕信息提交至緩存預(yù)處理模塊;
緩存預(yù)處理模塊用于:根據(jù)彈幕行為識(shí)別標(biāo)識(shí)確定符合規(guī)定的彈幕信息,對(duì)符合規(guī)定的彈幕信息進(jìn)行緩存和預(yù)處理后,得到彈幕行為預(yù)處理數(shù)據(jù),定時(shí)向數(shù)據(jù)片組成模塊發(fā)送數(shù)據(jù)片組成信號(hào);
數(shù)據(jù)片組成模塊用于:收到數(shù)據(jù)片組成信號(hào)后,將彈幕行為預(yù)處理數(shù)據(jù)組成若干數(shù)據(jù)片,每片數(shù)據(jù)片包括至少1條彈幕行為預(yù)處理數(shù)據(jù);定時(shí)將當(dāng)前所有緩存的數(shù)據(jù)片,按照哈希策略分配至每個(gè)實(shí)時(shí)計(jì)算模塊;
實(shí)時(shí)計(jì)算模塊用于:對(duì)數(shù)據(jù)片組成模塊分配的數(shù)據(jù)片中的所有彈幕行為預(yù)處理數(shù)據(jù)進(jìn)行驗(yàn)證,確定所有驗(yàn)證通過的彈幕行為預(yù)處理數(shù)據(jù);將所有驗(yàn)證通過的彈幕行為預(yù)處理數(shù)據(jù)對(duì)應(yīng)的用戶ID,更新至與當(dāng)前時(shí)間對(duì)應(yīng)的活躍用戶集分片中;活躍用戶集分片是指:預(yù)先將活躍用戶集按照指定的活躍計(jì)算時(shí)間段劃分成的若干分片;
活躍用戶集功能模塊用于:定時(shí)將實(shí)時(shí)計(jì)算模塊更新后的活躍用戶集分片添加至預(yù)先創(chuàng)建的時(shí)間輪盤中。
7.如權(quán)利要求6所述的基于時(shí)間輪盤和彈幕行為的活躍用戶集維護(hù)系統(tǒng),其特征在于:所述彈幕信息生成模塊得到的彈幕信息中的彈幕行為識(shí)別標(biāo)識(shí)包括:直播間IP地址、用戶發(fā)送的彈幕數(shù)據(jù)、用戶ID和識(shí)別碼;識(shí)別碼為固定長度,生成后會(huì)進(jìn)行加密;識(shí)別碼的生成規(guī)則為:由時(shí)間戳、用戶使用的終端設(shè)備ID和隨機(jī)數(shù)排列而成;
在此基礎(chǔ)上,所述緩存預(yù)處理模塊確定的符合規(guī)定的彈幕信息中的彈幕行為識(shí)別標(biāo)識(shí)需要同時(shí)滿足以下條件:直播間IP地址的格式合法、用戶發(fā)送的彈幕數(shù)據(jù)有效、用戶ID不為空、用戶ID符合數(shù)據(jù)字段類型、時(shí)間戳格式正確、用戶終端類型標(biāo)識(shí)合法。
8.如權(quán)利要求7所述的基于時(shí)間輪盤和彈幕行為的活躍用戶集維護(hù)系統(tǒng),其特征在于:所述實(shí)時(shí)計(jì)算模塊對(duì)數(shù)據(jù)片組成模塊分配的數(shù)據(jù)片中的所有彈幕行為預(yù)處理數(shù)據(jù)進(jìn)行驗(yàn)證時(shí)的具體流程為:對(duì)分配的所有數(shù)據(jù)片中的彈幕行為預(yù)處理數(shù)據(jù)的識(shí)別碼進(jìn)行解密,得到時(shí)間戳和終端設(shè)備ID,判斷時(shí)間戳是否在合理范圍內(nèi)、且終端設(shè)備ID符合規(guī)范,若是,確定當(dāng)前彈幕行為預(yù)處理數(shù)據(jù)驗(yàn)證通過,否則確定當(dāng)前彈幕行為預(yù)處理數(shù)據(jù)驗(yàn)證未通過,丟棄當(dāng)前彈幕行為預(yù)處理數(shù)據(jù)。
9.如權(quán)利要求6至8所述的基于時(shí)間輪盤和彈幕行為的活躍用戶集維護(hù)系統(tǒng),其特征在于:所述數(shù)據(jù)片組成模塊將當(dāng)前所有緩存的數(shù)據(jù)片,按照哈希策略分配為若干組的具體流程為:定義若干組的總數(shù)量為N,為每片數(shù)據(jù)片分配一個(gè)唯一的ID號(hào)UUID;將每個(gè)UUID和N進(jìn)行取模運(yùn)算,取模運(yùn)算得到的余數(shù)相同的所有數(shù)據(jù)片為相同組。
10.如權(quán)利要求6至8所述的基于時(shí)間輪盤和彈幕行為的活躍用戶集維護(hù)系統(tǒng),其特征在于:所述活躍用戶集功能模塊中的時(shí)間輪盤包括1個(gè)首尾相連的環(huán)形數(shù)據(jù)結(jié)構(gòu)緩沖循環(huán)隊(duì)列,環(huán)形數(shù)據(jù)結(jié)構(gòu)緩沖循環(huán)隊(duì)列分為若干單元槽,每個(gè)單元槽中填充有一片活躍用戶集分片;環(huán)形數(shù)據(jù)結(jié)構(gòu)緩沖循環(huán)隊(duì)列中設(shè)置有1個(gè)指向隊(duì)尾單元槽的指針;
在此基礎(chǔ)上,活躍用戶集功能模塊具體用于:定時(shí)周期過后,將時(shí)間輪盤中隊(duì)首單元槽內(nèi)的活躍用戶集分片移出,其余每個(gè)單元槽內(nèi)的活躍用戶集分片,分別按照順時(shí)針方向移動(dòng)至下一個(gè)單元槽,順時(shí)針方向?yàn)殛?duì)尾至隊(duì)首方向,逆時(shí)針方向?yàn)殛?duì)首至隊(duì)尾方向;將實(shí)時(shí)計(jì)算模塊更新后的活躍用戶集分片添加至?xí)r間輪盤隊(duì)尾的單元槽,將指針按照順時(shí)針方向移動(dòng)至下一個(gè)單元槽。