一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,尤其是一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法與系統(tǒng)。
【背景技術(shù)】
[0002]在計(jì)算機(jī)的數(shù)據(jù)處理能力不斷上升,大數(shù)據(jù)成為時(shí)代主題的背景下,用戶行為數(shù)據(jù)收集及分析變得越來越重要,收集的數(shù)據(jù)量也越來越大。如:用戶名稱、用戶ip、請求時(shí)間、請求地址、響應(yīng)時(shí)間、頁面的使用軌跡、跳轉(zhuǎn)頁面、瀏覽器信息、系統(tǒng)的版本等等,因而服務(wù)器端的采集系統(tǒng)面臨越來越大的考驗(yàn)。
[0003]在現(xiàn)有的技術(shù)中,已經(jīng)出現(xiàn)對海量的用戶行為數(shù)據(jù)進(jìn)行采集技術(shù),技術(shù)的處理方式一般是對服務(wù)器端日志進(jìn)行異步處理保存在數(shù)據(jù)庫或者其它存儲(chǔ)系統(tǒng)中,然后再使用并行處理系統(tǒng)對其海量數(shù)據(jù)進(jìn)行后期整理分析、挖掘,結(jié)果反饋到如:推薦系統(tǒng)、監(jiān)控系統(tǒng)、報(bào)表系統(tǒng)等使用。這樣的處理過程導(dǎo)致某些需要實(shí)時(shí)反饋的數(shù)據(jù)得不到實(shí)時(shí)反饋,處理效率不尚。
[0004]有鑒于此,現(xiàn)有技術(shù)有待改進(jìn)和提尚。
【發(fā)明內(nèi)容】
[0005]鑒于上述技術(shù)問題的不足,本發(fā)明的目的在于提供一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法與系統(tǒng),意在于對現(xiàn)有技術(shù)中基于異步日志分析的用戶行為采集系統(tǒng)的實(shí)時(shí)性不好,處理效率不高的問題進(jìn)行改進(jìn),提供穩(wěn)定、高效、實(shí)時(shí)性好的海量用戶行為數(shù)據(jù)采集方法與系統(tǒng)。
[0006]本發(fā)明采用的技術(shù)方案是:
一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法,其特征在于:包括以下步驟
51、使用植入腳本在頁面中把用戶行為數(shù)據(jù)收集為日志記錄并把記錄數(shù)據(jù)通過Http提交到服務(wù)器端后臺(tái);
52、對日志記錄直接通過日志攔截器進(jìn)行預(yù)處理;
53、對S2經(jīng)過預(yù)處理的用戶行為數(shù)據(jù)直接發(fā)送到消息隊(duì)列中,等待處理器采集;
54、用戶行為處理器訂閱S3中消息隊(duì)列的數(shù)據(jù)并進(jìn)行處理,用戶行為處理器根據(jù)S3消息隊(duì)列的數(shù)據(jù)量動(dòng)態(tài)增加處理器以加快用戶行為數(shù)據(jù)的采集。
[0007]所述步驟S2中預(yù)處理是指日志攔截器把數(shù)據(jù)封裝成以單一頁面的行為數(shù)據(jù)為單位的數(shù)據(jù)包。
[0008]所述步驟S2中,日志攔截器會(huì)把不需要處理的數(shù)據(jù)過濾,及對需要處理的數(shù)據(jù)解釋成數(shù)據(jù)包。
[0009]所述數(shù)據(jù)包中的字段包括:請求用戶、請求ip、請求參數(shù)、請求地址、頁面的使用軌跡、跳轉(zhuǎn)頁面、瀏覽器信息、系統(tǒng)信息、響應(yīng)時(shí)間中的一種或多種。
[0010]所述步驟S3中消息隊(duì)列的入列與出列速度為毫秒級,并且消息隊(duì)列在數(shù)據(jù)高峰期對數(shù)據(jù)緩沖處理。
[0011]所述步驟S4中用戶行為處理器是對需要進(jìn)行實(shí)時(shí)反饋的數(shù)據(jù)進(jìn)行處理。
[0012]所述需要進(jìn)行實(shí)時(shí)反饋的數(shù)據(jù)為pv、uv、熱門資源、熱門關(guān)鍵字、頁面平均訪問時(shí)間中的一種或多種。
[0013]所述步驟S4針對不同的業(yè)務(wù)需要定制不同的處理器,且處理器是可分布式并行處理的,根據(jù)消息隊(duì)列的緩存的數(shù)量進(jìn)行增加與減少,結(jié)果實(shí)時(shí)反饋到相應(yīng)的系統(tǒng)進(jìn)入實(shí)時(shí)反饋,并且把原始數(shù)據(jù)包批量寫入存儲(chǔ)系統(tǒng)。
[0014]本發(fā)明還包括與上述采集方法同一構(gòu)思的技術(shù)方案,一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集系統(tǒng),包括
日志攔截模塊,用于用戶行為數(shù)據(jù)的過濾及預(yù)處理;
消息隊(duì)列系統(tǒng),用戶行為數(shù)據(jù)包的中轉(zhuǎn)、分發(fā);
用戶行為處理器模塊,用于實(shí)時(shí)用戶行為數(shù)據(jù)的處理、結(jié)果反饋及原始數(shù)據(jù)的批量存儲(chǔ)。
[0015]本發(fā)明的有益效果是:
本發(fā)明提供的基于消息隊(duì)列的用戶行為數(shù)據(jù)采集方法與系統(tǒng),把消息隊(duì)列引入到海量的用戶行為數(shù)據(jù)采集中,充分利用消息隊(duì)列:數(shù)據(jù)傳輸高效、數(shù)據(jù)吞吐量大、橫向擴(kuò)展性好等特點(diǎn)用于海量的用戶行為數(shù)據(jù)采集,提高了數(shù)據(jù)采集實(shí)時(shí)性及數(shù)據(jù)采集效率,特別是互聯(lián)網(wǎng)海量的用戶行為采集提供了穩(wěn)定、高效及實(shí)時(shí)性好的解決方案。
【附圖說明】
[0016]下面結(jié)合附圖對本發(fā)明的【具體實(shí)施方式】做進(jìn)一步的說明。
[0017]圖1是本發(fā)明用戶行為數(shù)據(jù)采集方法與系統(tǒng)的原理框圖。
【具體實(shí)施方式】
[0018]參考圖1所示,為本發(fā)明的最佳實(shí)施案例提供的基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法與系統(tǒng),其包括以下步驟:
S1、植入Javascript腳本在頁面中,通過內(nèi)置在瀏覽器的對象收集所需要的信息,如頁面的title、referer、瀏覽器語言、cookies信息、頁面的加載時(shí)間、登出的頁面及事件跟蹤信息等等,把收集到的信息按預(yù)定義的格式編碼、拼接,通過js創(chuàng)建一個(gè)Image對象,將Image對象的src屬性指向用戶行為數(shù)據(jù)服務(wù)器并攜帶上拼接好的參數(shù),如:
image.src=http://nenglong.com/1.gif?domain=localhost&url=http%3A%2F%2Flocalhost%3A8080%2F&title=%E5%90%8C%E6%AD%A5%E8%AF%BE%E5%A0%82%E2%80%94%E2%80%94%E5%90%8C%E6%AD%A5%E8%B5%84%E6%BA%90&referrer=&sh=900&sw=1600&cd=24&lang=zh-CN&account=oos0
[0019]用戶行數(shù)據(jù)服務(wù)器把請求的ip、請求地址、以及請求時(shí)間和請求參數(shù)等直接寫到文件中。
[0020]S2、日志攔截器,包括:tail文件掃描線程、數(shù)據(jù)過濾及預(yù)處理、數(shù)據(jù)包發(fā)送。攔截器實(shí)時(shí)把新增的用戶行為數(shù)據(jù)攔截下來并且對用戶行為數(shù)據(jù)進(jìn)行過濾、格式化、數(shù)據(jù)包封裝等預(yù)處理,處理好的數(shù)據(jù)包直接發(fā)送到消息隊(duì)列中。
[0021]S3、消息隊(duì)列,對S2的數(shù)據(jù)進(jìn)入接收并且根據(jù)規(guī)則發(fā)送到相應(yīng)的用戶行為處理器。消息隊(duì)列是這個(gè)采集過程最重要的環(huán)節(jié),它數(shù)據(jù)分發(fā)速度快,數(shù)據(jù)高峰期時(shí)可以緩存數(shù)據(jù),同時(shí)支持多渠道分發(fā),使用后續(xù)處理環(huán)節(jié)可以分布式、并行處理。
[0022]S4、用戶行為處理器,接收到S3發(fā)過來的數(shù)據(jù)包對數(shù)據(jù)處理,如頁面瀏覽量PV、獨(dú)立訪客UV統(tǒng)計(jì)、熱門資源、熱門關(guān)鍵字、頁面的平均訪問時(shí)間、ip數(shù)等,實(shí)時(shí)把統(tǒng)計(jì)數(shù)據(jù)匯總到監(jiān)控系統(tǒng)或者其它系統(tǒng)上,原始數(shù)據(jù)包append到本地的緩存中,當(dāng)超過一定的數(shù)據(jù)量或者一定的時(shí)間間隔時(shí),批量導(dǎo)入存儲(chǔ)系統(tǒng)。原始數(shù)據(jù)的保存是為后續(xù)進(jìn)一步進(jìn)行復(fù)雜的用戶行為數(shù)據(jù)分析與挖掘。
[0023]以上所述僅為本發(fā)明的優(yōu)先實(shí)施方式,本發(fā)明并不限定于上述實(shí)施方式,只要以基本相同手段實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案都屬于本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法,其特征在于:包括以下步驟 51、使用植入腳本在頁面中把用戶行為數(shù)據(jù)收集為日志記錄并把記錄數(shù)據(jù)通過Http提交到服務(wù)器端后臺(tái); 52、對日志記錄直接通過日志攔截器進(jìn)行預(yù)處理; 53、對S2經(jīng)過預(yù)處理的用戶行為數(shù)據(jù)直接發(fā)送到消息隊(duì)列中,等待處理器采集; 54、用戶行為處理器訂閱S3中消息隊(duì)列的數(shù)據(jù)并進(jìn)行處理,用戶行為處理器根據(jù)S3消息隊(duì)列的數(shù)據(jù)量動(dòng)態(tài)增加處理器以加快用戶行為數(shù)據(jù)的采集。
2.根據(jù)權(quán)利要求1所述的一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法,其特征在于:所述步驟S2中預(yù)處理是指日志攔截器把數(shù)據(jù)封裝成以單一頁面的行為數(shù)據(jù)為單位的數(shù)據(jù)包。
3.根據(jù)權(quán)利要求2所述的一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法,其特征在于:所述步驟S2中,日志攔截器會(huì)把不需要處理的數(shù)據(jù)過濾,及對需要處理的數(shù)據(jù)解釋成數(shù)據(jù)包。
4.根據(jù)權(quán)利要求3所述的一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法,其特征在于:所述數(shù)據(jù)包中的字段包括:請求用戶、請求ip、請求參數(shù)、請求地址、頁面的使用軌跡、跳轉(zhuǎn)頁面、瀏覽器信息、系統(tǒng)信息、響應(yīng)時(shí)間中的一種或多種。
5.根據(jù)權(quán)利要求1所述的一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法,其特征在于:所述步驟S3中消息隊(duì)列的入列與出列速度為毫秒級,并且消息隊(duì)列在數(shù)據(jù)高峰期對數(shù)據(jù)緩沖處理。
6.根據(jù)權(quán)利要求1所述的一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法,其特征在于:所述步驟S4中用戶行為處理器是對需要進(jìn)行實(shí)時(shí)反饋的數(shù)據(jù)進(jìn)行處理。
7.根據(jù)權(quán)利要求6所述的一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法,其特征在于:所述需要進(jìn)行實(shí)時(shí)反饋的數(shù)據(jù)為pv、UV、熱門資源、熱門關(guān)鍵字、頁面平均訪問時(shí)間中的一種或多種。
8.根據(jù)權(quán)利要求1所述的一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集方法,其特征在于:所述步驟S4針對不同的業(yè)務(wù)需要定制不同的處理器,且處理器是可分布式并行處理的,根據(jù)消息隊(duì)列的緩存的數(shù)量進(jìn)行增加與減少,結(jié)果實(shí)時(shí)反饋到相應(yīng)的系統(tǒng)進(jìn)入實(shí)時(shí)反饋,并且把原始數(shù)據(jù)包批量寫入存儲(chǔ)系統(tǒng)。
9.一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集系統(tǒng),其特征在于:包括 日志攔截模塊,用于用戶行為數(shù)據(jù)的過濾及預(yù)處理; 消息隊(duì)列系統(tǒng),用戶行為數(shù)據(jù)包的中轉(zhuǎn)、分發(fā); 用戶行為處理器模塊,用于實(shí)時(shí)用戶行為數(shù)據(jù)的處理、結(jié)果反饋及原始數(shù)據(jù)的批量存儲(chǔ)。
【專利摘要】本發(fā)明公開了一種基于消息隊(duì)列的海量用戶行為數(shù)據(jù)采集系統(tǒng),包括:日志攔截模塊,用于用戶行為數(shù)據(jù)的過濾及預(yù)處理;消息隊(duì)列系統(tǒng),用戶行為數(shù)據(jù)包的中轉(zhuǎn)、分發(fā);用戶行為處理器模塊,用于實(shí)時(shí)用戶行為數(shù)據(jù)的處理、結(jié)果反饋及原始數(shù)據(jù)的批量存儲(chǔ)。發(fā)明提供的基于消息隊(duì)列的用戶行為數(shù)據(jù)采集方法與系統(tǒng),把消息隊(duì)列引入到海量的用戶行為數(shù)據(jù)采集中,充分利用消息隊(duì)列:數(shù)據(jù)傳輸高效、數(shù)據(jù)吞吐量大、橫向擴(kuò)展性好等特點(diǎn)用于海量的用戶行為數(shù)據(jù)采集,提高了數(shù)據(jù)采集實(shí)時(shí)性及數(shù)據(jù)采集效率,特別是互聯(lián)網(wǎng)海量的用戶行為采集提供了穩(wěn)定、高效及實(shí)時(shí)性好的解決方案。
【IPC分類】H04L29-08, H04L12-24
【公開號】CN104579789
【申請?zhí)枴緾N201510036709
【發(fā)明人】余敬龍
【申請人】廣東能龍教育股份有限公司
【公開日】2015年4月29日
【申請日】2015年1月23日