婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺析Tencent Analytics騰訊網(wǎng)站分析系統(tǒng)的架構(gòu)

淺析Tencent Analytics騰訊網(wǎng)站分析系統(tǒng)的架構(gòu)

熱門標(biāo)簽:個人家庭地圖標(biāo)注教程 徐州穩(wěn)定外呼系統(tǒng)代理商 百度地圖標(biāo)注不能編輯 威海語音外呼系統(tǒng)廠家 七臺河商家地圖標(biāo)注注冊 廣安電銷外呼系統(tǒng) 勝威電話外呼系統(tǒng)密碼 百度高德騰訊地圖標(biāo)注公司 搜地圖標(biāo)注怎么找店鋪

TA(Tencent Analytics,騰訊分析)是一款面向第三方站長的免費(fèi)網(wǎng)站分析系統(tǒng),在數(shù)據(jù)穩(wěn)定性、及時性方面廣受站長好評,其秒級的實(shí)時數(shù)據(jù)更新頻率也獲得業(yè)界的認(rèn)可。本文將從實(shí)時數(shù)據(jù)處理、數(shù)據(jù)存儲等多個方面帶你深入探尋TA的系統(tǒng)架構(gòu)及實(shí)現(xiàn)原理。

網(wǎng)站分析(Web Analytics)主要指的是基于網(wǎng)站的用戶瀏覽行為,對網(wǎng)站的點(diǎn)擊流數(shù)據(jù)和運(yùn)營數(shù)據(jù)進(jìn)行分析,以監(jiān)控網(wǎng)站的運(yùn)營狀況,為網(wǎng)站的優(yōu)化提供決策依據(jù)。網(wǎng)站分析系統(tǒng)已成為站長日常運(yùn)營必不可少的工具,業(yè)界比較流行的網(wǎng)站分析系統(tǒng)主要有Google Analytics、CNZZ和百度統(tǒng)計等產(chǎn)品。

TA作為網(wǎng)站分析產(chǎn)品的后起之秀在社區(qū)分析、用戶畫像、網(wǎng)站工具等多方面形成了自己的特色,其秒級的實(shí)時數(shù)據(jù)更新頻率更是業(yè)界翹楚。在數(shù)據(jù)穩(wěn)定性、準(zhǔn)確性和及時性方面,TA在站長圈也是享有良好的口碑。隨著接入業(yè)務(wù)量的不斷發(fā)展,TA日均需要處理和計算的數(shù)據(jù)量達(dá)到TB級。如此龐大的數(shù)據(jù)量想要達(dá)到秒級實(shí)時且保證系統(tǒng)的高可用并非件易事。

TA的實(shí)時計算框架借鑒了一些業(yè)界流行的流式計算系統(tǒng)的思路。雖然在構(gòu)建系統(tǒng)中遇到了一些問題,但由于海量數(shù)據(jù)的實(shí)時處理、實(shí)時存儲具備一定的典型性與通用性,所以將TA的解決方案分享出來,希望能給大家一些啟示。

基本原理及系統(tǒng)架構(gòu)

TA的基本原理是通過嵌入站長網(wǎng)站的JavaScript腳本收集用戶訪問行為數(shù)據(jù),并發(fā)送TA采集集群,采集集群收到數(shù)據(jù)后將其過濾、編碼、格式化后繼續(xù)向后分發(fā)。數(shù)據(jù)處理集群負(fù)責(zé)按照業(yè)務(wù)邏輯計算數(shù)據(jù),并將計算結(jié)果“寫入”到數(shù)據(jù)存儲集群,最后將結(jié)果數(shù)據(jù)展現(xiàn)給廣大站長使用。TA的基本原理如圖所示。

TA后臺是一套完整的數(shù)據(jù)流處理系統(tǒng):由JavaScript采集的用戶行為數(shù)據(jù)像川流不息的河水一樣流入TA后臺,經(jīng)過清洗、計算后源源不斷地流出到TA存儲集群,供用戶瀏覽和查詢。TA的具體架構(gòu)及核心部件如圖所示。

TA的后臺分為離線和實(shí)時兩部分:實(shí)時部分負(fù)責(zé)系統(tǒng)的主要功能計算,數(shù)據(jù)更新頻率為秒級;離線部分負(fù)責(zé)系統(tǒng)復(fù)雜的關(guān)聯(lián)分析及跨天計算,數(shù)據(jù)更新頻率為天級。

Http Access:主要負(fù)責(zé)HTTP協(xié)議的解析,數(shù)據(jù)的清洗及格式化。

ESC:Event Streaming Coder,主要負(fù)責(zé)將系統(tǒng)不可枚舉的數(shù)據(jù)類型編碼成為整型,并將對應(yīng)關(guān)系持久化。

ESP:Event Streaming Processor,主要負(fù)責(zé)將數(shù)據(jù)按照站點(diǎn)、UID重新組織并計算PV、UV、停留時長和蹦失率等網(wǎng)站分析指標(biāo)。

ESA:Event Streaming Aggregator,主要負(fù)責(zé)匯總ESP計算后的數(shù)據(jù)按照站點(diǎn),并寫入到Redis。

Center:系統(tǒng)的中心節(jié)點(diǎn),負(fù)責(zé)系統(tǒng)配置、數(shù)據(jù)路由管理,并承擔(dān)容災(zāi)切換功能。

Logserver:負(fù)責(zé)將Access收集到的數(shù)據(jù)以字符串形式寫入文件,并上傳到TDCP上。

TDCP:騰訊分布式計算平臺,負(fù)責(zé)離線數(shù)據(jù)的計算,并由腳本將結(jié)果數(shù)據(jù)寫入MySQL中。

實(shí)時解決方案

前TA日均需要處理幾十萬網(wǎng)站的上TB級數(shù)據(jù),處理過后的URL個數(shù)仍有上億條,系統(tǒng)存儲的key個數(shù)超過十億。如何高效、低延遲地處理如此大量的業(yè)務(wù)數(shù)據(jù)是TA實(shí)時系統(tǒng)面臨的主要挑戰(zhàn)。TA解決方案的主要思路可以概括為數(shù)據(jù)全二進(jìn)制化、計算全內(nèi)存化、存儲NoSQL化。下面就實(shí)時計算和實(shí)時存儲這兩大子系統(tǒng)進(jìn)行深入的討論。

實(shí)時計算

對于計算子系統(tǒng),我們參考了Hadoop、S4和Storm等開源項(xiàng)目,力圖設(shè)計為一個較為通用,擴(kuò)展性較強(qiáng)的全內(nèi)存實(shí)時Event處理系統(tǒng)(或者套用流行的術(shù)語稱為流式實(shí)時Event處理系統(tǒng))。對于這樣的一個系統(tǒng),我們設(shè)計支持的典型輸入輸出流程大致如圖所示。

實(shí)時計算系統(tǒng)的設(shè)計要點(diǎn)在數(shù)據(jù)組織、協(xié)議和增量計算模型上。

數(shù)據(jù)組織。萬物皆int,考慮到內(nèi)存以及計算過程的性能需求,我們將所有非int的數(shù)據(jù)類型轉(zhuǎn)化為int。可以枚舉的數(shù)據(jù)類型,將其配置化映射為唯一int;不可枚舉的數(shù)據(jù)類型,則利用MD5算法近似得到唯一的int。例如,頁面URL屬于不可枚舉的類型,則預(yù)處理通過MD5算法近似得到唯一的int;UserAgent里的瀏覽器類型字符串則屬于可枚舉的數(shù)據(jù),則預(yù)先配置化映射為int。這個方法節(jié)省了較多內(nèi)存,提高了整個系統(tǒng)的計算性能。

協(xié)議。協(xié)議層面上,我們首先設(shè)計實(shí)現(xiàn)了一種可擴(kuò)展的Event結(jié)構(gòu),這種Event結(jié)構(gòu)支持半自動化的序列化/反序列化機(jī)制(參考自msgpack的設(shè)計)和緊湊的二進(jìn)制編碼(基于Zigzag編碼,參考Protobuf的實(shí)現(xiàn))。這種Event結(jié)構(gòu)在流式高性能I/O(網(wǎng)絡(luò)傳輸和持久化)方面表現(xiàn)得相當(dāng)良好。實(shí)時計算子系統(tǒng)被設(shè)計為可以擴(kuò)展支持任意的Event實(shí)現(xiàn)。

增量計算模型。增量計算模型,指的是基本計算過程,被定義為以下三部分(如圖所示)

Processor:負(fù)責(zé)具體業(yè)務(wù)邏輯的計算處理。

Data Holder:負(fù)責(zé)保存增量結(jié)果數(shù)據(jù),以及計算依賴的中間狀態(tài)數(shù)據(jù)。

Emitter:負(fù)責(zé)定期輸出清空增量計算結(jié)果。

具體到流程方面,分為以下三步(如圖所示)。

接收Event,計算處理—Processor。

保存計算結(jié)果以及計算依賴中間數(shù)據(jù)—DataHolder。

定時觸發(fā)輸出時間片內(nèi)計算結(jié)果,清空計算結(jié)果—Emitter。

增量計算模型弱化了分布式系統(tǒng)中單臺機(jī)器的事務(wù)狀態(tài),相應(yīng)地簡化了分布式計算系統(tǒng)的實(shí)現(xiàn),同時也提高了整個系統(tǒng)的性能。

實(shí)時存儲

在TA系統(tǒng)中,實(shí)時存儲的數(shù)據(jù)都是需要通過Web展示層讀取的統(tǒng)計數(shù)據(jù)。這類數(shù)據(jù)存在兩個典型特點(diǎn)。

頻繁更新寫。更新頻度視系統(tǒng)實(shí)時性而定,每條統(tǒng)計結(jié)果更新頻度最快可以達(dá)到1秒。
少量讀取。“少量”是相對上述更新而言的。同時根據(jù)業(yè)務(wù)邏輯,可將統(tǒng)計數(shù)據(jù)劃分為兩類。
固定不變數(shù)據(jù):主要是URL、搜索關(guān)鍵詞等數(shù)據(jù)。這一部分?jǐn)?shù)據(jù)理論上是在不停地增加,不會修改舊有數(shù)據(jù)。
動態(tài)數(shù)據(jù):主要是頻繁更新的結(jié)果統(tǒng)計數(shù)據(jù)。這一部分?jǐn)?shù)據(jù)則需要不停地更新。例如,www.qq.com域名下的PV和UV統(tǒng)計結(jié)果。
考慮到上述的TA實(shí)時統(tǒng)計數(shù)據(jù)的特點(diǎn),我們選擇NoSQL實(shí)現(xiàn)我們的存儲系統(tǒng);同時,針對兩類不同的數(shù)據(jù)類型,分別選用LevelDB和Redis來存儲。

Redis

TA實(shí)時存儲的主要構(gòu)件。考慮到TA系統(tǒng)本身就是一個比較完善的分布式集群系統(tǒng),因此我們需要的存儲構(gòu)件是“not clustering, but sharding”。也就是說像HBase和MongoDB這樣的“重武器”并不適合TA,而NoSQL數(shù)據(jù)庫中的“瑞士軍刀”Redis憑借其出色的性能走入我們的視野。同時TA的結(jié)果數(shù)據(jù)類型也比較豐富,有像站點(diǎn)PV、UV、VV和IP等Hash類型的數(shù)據(jù),也有像用戶訪問軌跡這樣set類型的“動態(tài)數(shù)據(jù)”,而Redis豐富的數(shù)據(jù)結(jié)構(gòu)很好地完成了這項(xiàng)任務(wù)。

選擇Redis的另一個原因是它足夠簡單且易于擴(kuò)展。在實(shí)際應(yīng)用的過程中,我們發(fā)現(xiàn)的問題都可以通過擴(kuò)展Redis命令來解決。

例如,TA中有這樣的一種應(yīng)用場景:為了消除ESA模塊的狀態(tài),存儲在Redis中的數(shù)據(jù)往往并不是最終的結(jié)果數(shù)據(jù),而是還需要進(jìn)一步運(yùn)算的中間數(shù)據(jù)。像bounce rate這個指標(biāo)(bouncerate=bounce session數(shù)/total session數(shù)),需要前臺查詢兩次再做一次運(yùn)算后最終展示給用戶。在高并發(fā)的情況下,無疑會影響系統(tǒng)的響應(yīng)速度。

本著“移動計算,而不是移動數(shù)據(jù)”的原則,我們對Redis的sort、hmget命令進(jìn)行了擴(kuò)展使其支持四則運(yùn)算,成功地將原來的兩次查詢優(yōu)化為一次。擴(kuò)展四則運(yùn)算的另外一個目的是可以“通過計算換取存儲”,例如需要將兩種類型加總成總和的類型數(shù)據(jù),可以只存儲兩份,加總數(shù)據(jù)“通過計算換取”。

除了數(shù)據(jù)讀取,數(shù)據(jù)的寫入也可以進(jìn)行類似合并數(shù)據(jù)的優(yōu)化。例如,TA在寫入URL的PV、UV、VV、IP、停留時長和bounce rate這6個指標(biāo)時,需要調(diào)用6次Redis命令。而實(shí)際上這6個指標(biāo)是存儲在同一個Hash內(nèi)的,通過擴(kuò)展hmincrby命令,支持將Hash的所有field一次更改,便能將調(diào)用次數(shù)優(yōu)化至一次。上線之后也取得了良好的效果,峰值時的CPU利用率幾乎下降了一半,同時也大幅提升了上層模塊ESA的吞吐量。

LevelDB

它是Redis的有效補(bǔ)充。考慮到Redis為內(nèi)存數(shù)據(jù)庫,而使用內(nèi)存的成本要高于硬盤,因此選擇引入了基于磁盤存儲的LevelDB作為補(bǔ)充。由于LevelDB的寫性能足夠好,而讀性能也遠(yuǎn)遠(yuǎn)超過目前“在線少量讀取”的需求,所以我們選擇LevelDB存儲“固定不變數(shù)據(jù)”。

在數(shù)據(jù)存儲的架構(gòu)設(shè)計上,由于實(shí)時數(shù)據(jù)服務(wù)與在線系統(tǒng),可靠性要求較高,因此我們主要采取雙寫復(fù)制+Sharding的設(shè)計方法。

雙寫復(fù)制。所有的數(shù)據(jù)存儲都會至少同步寫兩份,以提高在線系統(tǒng)服務(wù)的可用性。

數(shù)據(jù)分片(Sharding)。

基于域名:所有的數(shù)據(jù)以域名為單位組織分片;任何域名可以調(diào)整到任意分片中;單個域名數(shù)據(jù)原則上存儲在一個分片中。

動態(tài)調(diào)整(如圖所示):只調(diào)整分片策略,不移動數(shù)據(jù);基于數(shù)據(jù)量計算分片負(fù)載。

此外,針對分片集群數(shù)據(jù)的查詢,我們主要做了三項(xiàng)工作(如圖所示)。

Redis Protocol Stack是一個較為完整的Redis協(xié)議棧,是上層應(yīng)用的基礎(chǔ)。直接用Redis協(xié)議作為對外提供查詢的通用協(xié)議,這樣外部用戶可直接通過目前各種Redis Client實(shí)現(xiàn)來查詢訪問數(shù)據(jù)。Query Rule Engine是一個靈活的查詢引擎。能夠根據(jù)規(guī)則智能地在多個Redis、LevelDB數(shù)據(jù)源中查詢,執(zhí)行類join的操作;也簡單擴(kuò)展支持其他的異構(gòu)數(shù)據(jù)源,如MySQL、HBase等。

Query Compute Engine是一個實(shí)時查詢計算引擎,能根據(jù)基礎(chǔ)查詢結(jié)果實(shí)時計算。引入此部分的主要目的在于減少Redis數(shù)據(jù)空間占用。
未來展望

目前TA雖然在后臺上已經(jīng)做到數(shù)據(jù)秒級更新,但展示方式仍為傳統(tǒng)的靜態(tài)方式。后續(xù)TA會在數(shù)據(jù)的動態(tài)刷新上進(jìn)行更多嘗試,讓站長可以第一時間了解網(wǎng)站營銷效果,時刻感受網(wǎng)站心跳。

標(biāo)簽:臨沂 昭通 滁州 婁底 威海 吳忠 三明 云浮

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺析Tencent Analytics騰訊網(wǎng)站分析系統(tǒng)的架構(gòu)》,本文關(guān)鍵詞  淺析,Tencent,Analytics,騰訊,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺析Tencent Analytics騰訊網(wǎng)站分析系統(tǒng)的架構(gòu)》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺析Tencent Analytics騰訊網(wǎng)站分析系統(tǒng)的架構(gòu)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲欧美日韩国产另类专区| 色婷婷久久久久swag精品| 久久久久久99久久久精品网站| 国产尤物一区二区在线| 亚洲另类中文字| 国产成都精品91一区二区三| 亚洲va欧美va人人爽午夜| 欧美激情一区二区三区| 国产成人精品免费| 久久疯狂做爰流白浆xx| 亚洲精品亚洲人成人网在线播放| 97国产一区二区| 国产精品亚洲成人| 中文字幕亚洲精品在线观看| 久久久久久久久久久久久久久99| 6080午夜不卡| 欧美日韩精品专区| 91免费在线播放| 99国产精品久| 99久久免费精品高清特色大片| 国产福利一区二区三区视频在线 | 欧美xxxx老人做受| 欧美一区二区三区思思人| 一本色道久久综合亚洲aⅴ蜜桃| 麻豆精品视频在线观看免费| 七七婷婷婷婷精品国产| 日本网站在线观看一区二区三区| 日韩av午夜在线观看| 天天综合网天天综合色| 天天综合网天天综合色| 日韩激情在线观看| 亚洲国产乱码最新视频 | 国产精品一区二区无线| 国产一区 二区 三区一级| 免费av成人在线| 亚洲午夜在线视频| 亚洲国产精品久久人人爱| 亚洲精品成人a在线观看| 亚洲在线观看免费| 日韩和的一区二区| 毛片av一区二区| 精品成人一区二区三区四区| 日韩欧美电影一区| 精品视频色一区| 精品欧美乱码久久久久久| 欧美白人最猛性xxxxx69交| 国产欧美日韩三区| 国产精品嫩草影院com| 亚洲欧美日韩成人高清在线一区| 日韩国产在线一| 日本成人在线网站| 亚洲va韩国va欧美va| 亚洲一区二区视频在线观看| 中日韩免费视频中文字幕| 日本一区二区三区在线观看| 国产精品三级电影| 欧美成人一级视频| 日韩亚洲欧美综合| 国产在线乱码一区二区三区| fc2成人免费人成在线观看播放| 久久精品99国产国产精| 亚洲chinese男男1069| 中文字幕日韩一区| 在线精品观看国产| 欧美日韩在线亚洲一区蜜芽| 欧美曰成人黄网| 欧美日韩一区小说| 欧美三区在线观看| 欧美一卡在线观看| 日韩久久久久久| 中文字幕精品在线不卡| 亚洲免费在线播放| 亚洲一区自拍偷拍| 男男视频亚洲欧美| 精品写真视频在线观看| 国产美女娇喘av呻吟久久| 成人网男人的天堂| 欧美一区二区三区小说| 成人一级视频在线观看| 日韩视频免费观看高清在线视频| 欧美zozozo| 午夜精品福利视频网站 | 丁香婷婷综合网| 日韩亚洲电影在线| 国产精品久久久久久久久搜平片| 亚洲精品中文在线影院| 美女视频一区在线观看| 国产91精品免费| 精品免费视频一区二区| 日本一区二区三区高清不卡| 国产一区二区伦理片| 欧美伦理电影网| 最新欧美精品一区二区三区| 亚洲成a人在线观看| 日本久久电影网| 曰韩精品一区二区| 色综合天天综合网国产成人综合天| 日韩久久久久久| 亚洲精品欧美激情| 成人性生交大片免费看视频在线| 欧美在线观看视频在线| 国产精品欧美久久久久无广告| 国产不卡在线播放| 欧美影片第一页| 夜夜揉揉日日人人青青一国产精品| 国产露脸91国语对白| 91麻豆精品在线观看| 欧美高清性hdvideosex| 国产精品视频你懂的| 老司机精品视频在线| 色婷婷综合久色| 国产色产综合产在线视频| 亚洲国产日韩精品| 99久久久无码国产精品| 国产精品99久| 久久av资源网| 日韩久久久精品| 欧美亚洲高清一区| 午夜伦欧美伦电影理论片| 精品福利一二区| 91黄色免费看| 亚洲日本青草视频在线怡红院| 欧美一级专区免费大片| 欧美日韩精品电影| 久久久精品国产免费观看同学| 国产一区在线精品| 国产区在线观看成人精品| 波多野结衣中文字幕一区 | 99久久99久久综合| 亚洲精品视频在线观看免费 | 国产精品理论在线观看| 91国在线观看| 午夜一区二区三区在线观看| 91麻豆高清视频| 日产精品久久久久久久性色| 91麻豆精品国产91久久久使用方法 | 亚洲最大成人综合| 色综合天天性综合| 一区二区三区在线播| 精品欧美黑人一区二区三区| 99精品偷自拍| 日韩av中文在线观看| 欧美人成免费网站| 久久99精品网久久| 亚洲欧洲一区二区三区| 欧美日韩国产精品自在自线| 亚洲乱码中文字幕| 欧美精品一区二| 国产精品1024久久| 日韩国产成人精品| 国产精品久久久久影院| 欧美日韩国产一级| 久久电影网站中文字幕| 在线不卡一区二区| 不卡一区在线观看| 日韩欧美一二三四区| www.久久久久久久久| 亚洲综合自拍偷拍| 国产亚洲一二三区| 94色蜜桃网一区二区三区| 另类小说欧美激情| 亚洲精品中文在线| 国产精品久久久久久久第一福利 | 亚洲一区国产视频| 欧美日免费三级在线| 国产成人欧美日韩在线电影| 国产欧美日韩不卡免费| 另类调教123区| 久久久三级国产网站| 紧缚奴在线一区二区三区| 1024国产精品| 久久久久久久免费视频了| 日韩一区二区影院| 老司机精品视频一区二区三区| 色欧美片视频在线观看| 99在线精品一区二区三区| 欧美色图一区二区三区| 中文字幕一区二区三区四区不卡| 91精品福利在线一区二区三区 | 91在线视频官网| 日韩欧美一级二级三级| 国产98色在线|日韩| 久久色在线观看| 色哟哟一区二区| 91在线视频观看| 国产精品亚洲第一区在线暖暖韩国 | 亚洲乱码国产乱码精品精的特点| 国产日韩欧美精品一区| 欧美精品一区二区三区在线播放| 日韩免费视频一区| 欧美一区二区三区四区高清| 欧美一级在线视频| 欧美区视频在线观看| 欧美男男青年gay1069videost| 欧美日韩国产小视频在线观看| 欧美性受xxxx| 日本成人在线网站| 久久精品国产亚洲a| 成人毛片视频在线观看| 国产一区二区福利|