亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

剖析Twitter的實時信息分析服務Answers的架構

2024-04-25 20:46:36
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了Twitter的實時信息分析服務Answers的架構,Answers的核心軟件采用Go語言編寫并且結合了Storm和Kafka的運用,實時處理能力相當驚人,需要的朋友可以參考下

2014年Twitter發布了Answers,至今移動社區產生了驚人的使用量,讓Twitter感到興奮不已?,F在Answers每天處理50億次會話,并且這個數量在持續增加。上億設備每秒向Answers端點發送數以百萬計的請求。在你已經閱讀到此處的這段時間里,Answers后臺收到并處理了一千萬次分析事件。

其中的挑戰是如何利用這些信息向移動開發者提供可靠的、實時的、有實際價值的洞見(視角)去了解他們的移動應用。

在高層,Twitter依靠 組件解耦、異步通信、在應對災難性故障時優雅地服務降級等原則來幫助架構決策。Twitter使用Lambda架構將數據完整性和實時數據更新結合起來。

在實踐過程中,Twitter需要設計一個能夠接收并保存事件、執行離線和實時計算且能將上述兩種計算結果整合成相關信息的系統。這些行為全部都要以百萬次每秒的規模執行。

讓Twitter從第一個挑戰開始:接受并處理這些事件。

事件接收

在設計設備-服務器通信的時候,Twitter的目標是:減少對電池和網絡使用的影響;確保數據的可靠性;接近實時地獲取數據。為了減少對設備的影響,Twitter批量地發送分析數據并且在發送前對數據進行壓縮。為了保證這些寶貴的數據始終能夠到達Twitter的服務器,在傳輸失敗隨機退避后以及達到設備存儲達到上限時,設備會進行重傳。為了確保數據能夠盡快到達服務器,Twitter設置來多個觸發器來使設備嘗試發送:當程序運行于前臺的時候,事件觸發器每分鐘觸發一次;一個消息數量觸發器和程序轉入后臺觸發器。

這樣的通信協議導致設備每秒發送來數以萬計壓縮過的有效載荷。每一個載荷都包含數十條事件。為了能夠可靠的、易于線性伸縮的方式去處理載荷,接收事件的服務必須極度簡單。

剖析Twitter的實時信息分析服務Answers的架構

這個服務使用GO語言編寫,這個服務使用了亞馬遜彈性負載均衡器(ELB),并將每一個消息負荷放入一個持久化的Kafka隊列。

存儲

Kafka是一個持久存儲器,因為它把收到的消息寫入磁盤并且每個消息都有多份冗余。因此一旦Twitter知道信息到了Kafka隊列,Twitter就可以通過延遲處理、再處理來容忍下游延遲和下游失敗。然而,Kafka不是Twitter歷史數據的永久真理之源——按照上文提到的速度,僅僅是幾天的數據,Twitter也需要數以百計的box來存儲。因此Twitter把Kafka集群配置為將消息只保留幾個小時(這些時間足夠Twitter處理不期而至的重大故障)并且將數據盡快地存入永久存儲——亞馬遜簡易存儲服務(Amazon S3)。

剖析Twitter的實時信息分析服務Answers的架構

Twitter廣泛地使用Storm來進行實時數據處理,第一個相關的Topology就是從Kafka讀取信息并存儲到Amazon S3上。

批量計算

一旦這些數據存到了S3上,Twitter可以使用亞馬遜彈性MapReduce(Amazon EMR)來計算Twitter的數據能夠計算的任何東西。這既包括要展示在客戶的儀表盤上的數據,也包括Twitter為了開發新功能而開發的實驗性的任務。

剖析Twitter的實時信息分析服務Answers的架構

Twitter使用Cascading框架編寫、Amazon EMR執行MapReduce程序。 Amazon EMR將Twitter存儲到S3上的數據作為輸入,處理完畢后,再將結果存入S3。Twitter通過運行在Storm上的調度topology來探測程序執行完畢,并將結果灌入Cassandra集群,這樣結果就能用于亞秒級查詢API。

實時計算

迄今,Twitter描述的是一個能夠執行分析計算的持久的容錯的框架。然而,存在一個顯眼的問題——這個框架不是實時的。一些計算每小時計算一次,有的計算需要一整天的數據作為輸入。計算時間從幾分鐘到幾小時不等,把S3上的輸出導入到服務層也需要這么多時間。因此,在最好情況下,Twitter的數據也總是拖后幾個小時,顯然不能滿足實時和可操作的目標。

為了達成實時的目標,數據涌入后進行存檔的同時,Twitter對數據進行流式計算。

剖析Twitter的實時信息分析服務Answers的架構

就像Twitter的存儲Topology讀取數據一樣,一個獨立的Storm Topology實時地從Kafka Topic中讀取數據然后進行實時計算,計算的邏輯和MapReduce任務一樣。這些實時計算的結果放在另一個獨立的Cassandra集群里以供實時查詢。

為了彌補Twitter在時間以及在資源方面可能的不足,Twitter沒有在批量處理層中而是在實時計算層中使用了一些概率算法,如布隆過濾器、HyperLogLog(也有一些自己開發的算法)。相對于那些蠻力替代品,這些算法在空間和時間復雜度上有數量級的優勢,同時只有可忽略的精確度損失。

合并

現在Twitter擁有兩個獨立生產出的數據集(批處理和實時處理),Twitter怎么將二者合并才能得到一個一致的結果?

剖析Twitter的實時信息分析服務Answers的架構

Twitter在API的邏輯中,根據特定的情況分別使用兩個數據集然后合并它們。

因為批量計算是可重現的,且相對于實時計算來說更容錯,Twitter的API總是傾向于使用批量產生的數據。例如,API接到了一個三十天的時間序列的日活躍用戶數量數據請求,它首先會到批量數據Cassandra集群里查詢全范圍的數據。如果這是一個歷史數據檢索,所有的數據都已經得到。然而,查詢的請求更可能會包含當天,批量產生的數據填充了大部分結果,只有近一兩天的數據會被實時數據填充。

錯誤處理

讓Twitter來溫習幾個失效的場景,看一下這樣的架構在處理錯誤的時候, 是如何避免宕機或者損失數據,取之以優雅地降級。

Twitter在上文中已經討論過設備上的回退重試策略。在設備端網絡中斷、服務器端短時無服務情況下,重試保證數據最終能夠到達服務器。隨機回退確保設備不會在某區域網絡中斷或者后端服務器短時間不可用之后,不會壓垮(DDos攻擊)服務器。

當實時處理層失效時,會發生什么?Twitter待命的工程師會受到通知并去解決問題。因為實時處理層的輸入是存儲在持久化的Kafka集群里,所以沒有數據會丟失;等實時處理恢復之后,它會趕上處理那些停機期間應該處理的數據。

因為實時處理和批處理是完全解耦的,批處理層完全不會受到影響。因此唯一的影響就是實時處理層失效期間,對數據點實時更新的延遲。

如果批處理層有問題或者嚴重延遲的話,會發生什么?Twitter的API會無縫地多獲取實時處理的數據。一個時間序列數據的查詢,可能先前只取一天的實時處理結果,現在就需要查詢兩到三天的實時處理結果。因為實時處理和批處理是完全解耦的,實時處理不受影響繼續運行。同時,Twitter的待命工程師會得到消息并且解決批處理層的問題。一旦批處理層恢復正常,它會執行那些延遲的數據處理任務,API也會無縫切換到使用現在可以得到的批處理的結果。

Twitter系統后端架構由四大組件構成:事件接收,事件存儲,實時計算和批量計算。各個組件之間的持久化隊列確保任意組件的失效不會擴散到其他組件,并且后續可以從中斷中恢復。API可以在計算層延遲或者失效時無縫地優雅降級,在服務恢復后重新恢復;這些都是由API內部的檢索邏輯來保證的。

Answer的目標是創建一個儀表盤,這個儀表盤能夠把了解你的用戶群變得非常簡單。因此你可以將時間花費在打造令人驚嘆的用戶體驗上,而不是用來掘穿數據。


注:相關教程知識閱讀請移步到建站經驗頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美中文在线观看| 欧美日韩成人精品| 国产v综合ⅴ日韩v欧美大片| 亚洲一区二区自拍| 黑人狂躁日本妞一区二区三区| 欧美精品一区三区| 欧美性猛交99久久久久99按摩| 亚洲裸体xxxx| 久久久久久999| 久久久影视精品| 日韩电影在线观看免费| 日韩三级影视基地| 精品美女国产在线| 久久电影一区二区| 日韩中文字幕在线视频播放| 久久久亚洲影院| 国产欧美在线看| 国产精品视频自拍| 最近2019中文字幕mv免费看| 欧美最猛性xxxxx免费| 欧美性猛xxx| 成人网在线免费观看| 成人欧美一区二区三区黑人| 日韩欧美在线国产| 亚洲国模精品一区| 日韩美女毛茸茸| 国产欧美 在线欧美| 日本道色综合久久影院| 国产主播在线一区| 97国产一区二区精品久久呦| 久久精品久久久久| 一本色道久久88综合亚洲精品ⅰ| 日韩欧美在线视频日韩欧美在线视频| 精品亚洲夜色av98在线观看| 欧美极品在线播放| 中文字幕久久亚洲| 午夜精品一区二区三区av| 亚洲精品欧美日韩专区| 久久精品国产2020观看福利| 亚洲午夜av久久乱码| 77777少妇光屁股久久一区| 91天堂在线观看| 亚洲三级 欧美三级| 亚洲精品狠狠操| 久久亚洲欧美日韩精品专区| 久久99国产精品自在自在app| 国产精品第3页| 中文字幕欧美精品日韩中文字幕| 三级精品视频久久久久| 在线国产精品播放| 精品成人国产在线观看男人呻吟| 色综合导航网站| 亚洲自拍小视频免费观看| 亚洲第一色中文字幕| 欧美日韩亚洲激情| 成人有码在线播放| 国产91免费看片| 亚洲精品成人久久| 欧美日韩成人在线观看| 91精品国产91久久久| 亚洲精品国产精品乱码不99按摩| 国产成人啪精品视频免费网| 91久久精品久久国产性色也91| 国自产精品手机在线观看视频| 久久精品国产69国产精品亚洲| 欧美电影免费观看大全| 亚洲精品ady| 亚洲国产精品一区二区三区| 日韩欧美在线视频日韩欧美在线视频| 亚洲电影成人av99爱色| 美女久久久久久久久久久| 欧美一区二区大胆人体摄影专业网站| 午夜精品久久久久久久99黑人| 久久久久北条麻妃免费看| 国产精品久久久亚洲| 国产在线观看91精品一区| 九九热这里只有在线精品视| 97国产精品人人爽人人做| 亚洲成人国产精品| 亚洲午夜未删减在线观看| 亚洲爱爱爱爱爱| 日韩精品小视频| 欧美亚洲日本网站| 国产精品美女无圣光视频| 久久精品色欧美aⅴ一区二区| 欧美极品美女视频网站在线观看免费| 国产69精品久久久久9| 亚洲天堂免费在线| 蜜臀久久99精品久久久久久宅男| 亚洲va男人天堂| 91爱视频在线| 一区二区国产精品视频| 精品国产依人香蕉在线精品| 亚洲第一天堂av| 日韩中文字幕网站| 北条麻妃在线一区二区| 97视频在线观看免费高清完整版在线观看| 日韩精品黄色网| 国产精品女主播| 久久av中文字幕| 亚洲欧美国产va在线影院| 欧美国产极速在线| 欧美日韩ab片| 91av免费观看91av精品在线| 成人激情视频在线播放| 日韩av一区在线| 日韩av影片在线观看| 久久天天躁狠狠躁夜夜躁2014| 欧美大胆a视频| 美女视频黄免费的亚洲男人天堂| 国产日本欧美在线观看| 91av视频在线免费观看| 国产精品视频在线播放| 亚洲成人精品视频在线观看| 欧美精品性视频| 欧美精品第一页在线播放| 精品国产欧美成人夜夜嗨| 久久精品成人动漫| 国产精品亚洲一区二区三区| 91av视频在线| 久久91亚洲精品中文字幕奶水| 久久中文字幕视频| 欧美黄色成人网| 麻豆国产精品va在线观看不卡| 亚洲专区在线视频| 91亚洲午夜在线| 日韩在线视频中文字幕| 性欧美xxxx| 国产精品成人av性教育| 国产一区二区三区视频免费| 岛国av午夜精品| 午夜精品久久久久久久男人的天堂| 中文字幕日韩在线视频| 欧美日韩另类字幕中文| 亚洲国产精彩中文乱码av| 亚洲色图偷窥自拍| 亚洲午夜未满十八勿入免费观看全集| 亚洲欧美国产精品久久久久久久| 欧美极品少妇全裸体| 色香阁99久久精品久久久| 亚洲日本欧美中文幕| 92国产精品久久久久首页| 在线亚洲男人天堂| 国产欧美欧洲在线观看| 18性欧美xxxⅹ性满足| 在线成人免费网站| 黄色一区二区在线观看| 成人在线精品视频| 亚洲精品不卡在线| 亚洲天堂av高清| 国模私拍视频一区| 亚洲一区二区自拍| 亚洲free嫩bbb| 精品视频偷偷看在线观看| 国产欧美日韩中文字幕| 成人网在线视频| 日韩理论片久久| 国外成人在线播放| 欧美怡红院视频一区二区三区| 欧美亚洲视频在线观看| 91热福利电影| 亚洲一区二区精品| 国产精品678| 美女国内精品自产拍在线播放|