精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

FunData — 電競大數據系統架構演進

新聞
無論是對于觀賽用戶,還是比賽用戶,電競數據的豐富程度與實時要求得到越來越多的關注。數據對比賽的觀賞性和專業性的提高也起到至關重要的作用,相關背景知識可參考"VARENA開啟電競大數據時代"。

FunData作為電競數據平臺,v1.0 beta版本主要提供由Valve公司出品的頂級MOBA類游戲DOTA2的相關數據接口(詳情參見open.varena.com)。無論是對于觀賽用戶,還是比賽用戶,電競數據的豐富程度與實時要求得到越來越多的關注。數據對比賽的觀賞性和專業性的提高也起到至關重要的作用,相關背景知識可參考"VARENA開啟電競大數據時代"。

電競數據的豐富性從受眾角度來看,可分為賽事、戰隊和玩家數據;從游戲角度來看,維度可由英雄、戰斗、道具以及技能等組成;電競數據的實時性包括賽前兩支戰隊的歷史交戰記錄、賽中的實時比分、勝率預測、賽后比賽分析和英雄對比等。

因此多維度的數據支持,TB到PB級別的海量數據存儲與實時分析都對底層系統的架構設計有著更高的要求,亦帶來了更嚴峻的挑戰。

本文將介紹FunData的架構演進中的設計思路及其涉及的相關技術,包括大數據流處理方案、結構化存儲轉非結構化存儲方案和數據API服務設計等。

本文大綱如下:

1.0架構

2.0架構改造

任務粒度細化

分布式存儲

系統解耦

數據API層

1.0架構

2.0架構改造

結語

1.0架構

項目發展初期,依照MVP理論(最小化可行產品),我們迅速推出FunData的第一版系統(架構圖如圖1)。系統主要有兩個模塊:Master與Slave。

Master模塊功能如下:

定時調用Steam接口獲取比賽ID與基礎信息

通過In-Memory的消息隊列分發比賽分析任務到Slave節點

記錄比賽分析進度,并探測各Slave節點狀態

Slave模塊功能如下:

監聽隊列消息并獲取任務(任務主要為錄像分析,錄像分析參考github項目clarity(https://github.com/skadistats/clarity)與manta(https://github.com/dotabuff/manta))

分析數據入庫

系統上線初期運行相對穩定,各維度的數據都可快速拉取。然而隨著數據量的增多,數據與系統的可維護性問題卻日益突出。

新增數據字段需要重新構建DB索引,數據表行數過億構建時間太長且造成長時間鎖表。

系統耦合度高,不易于維護,Master節點的更新重啟后,Slave無重連機制需要全部重啟;同時In-Memory消息隊列有丟消息的風險。

系統可擴展性低,Slave節點擴容時需要頻繁的制作虛擬機鏡像,配置無統一管理,維護成本高。

DB為主從模式且存儲空間有限,導致數據API層需要定制邏輯來分庫讀取數據做聚合分析。

節點粒度大,Slave可能承載的多個分析任務,故障時影響面大。

1.0ETL架構圖(圖1)

在開始2.0架構設計與改造前,我們嘗試使用冷存儲方法,通過遷移數據的方式來減輕系統壓力(架構設計如圖2)。由于數據表數據量太大,并發多個數據遷移任務需要大量時間,清理數據的過程同樣會觸發重新構建索引,方案的上線并沒有根本性地解決問題。

冷存儲方案(圖2)

2.0架構

吸取1.0系統的經驗,在2.0架構設計中,我們從維護性、擴展性和穩定性三個方面來考慮新數據系統架構應該具備的基本特性:

數據處理任務粒度細化,且支持高并發處理( 全球一天DOTA2比賽的場次在120萬場,錄像分析相對耗時,串行處理會導致任務堆積嚴重)

數據分布式存儲

系統解耦,各節點可優雅重啟與更新

架構圖如圖3

2.0ETL總架構圖(圖3)

2.0系統選擇Google Cloud Platform來構建整個數據ETL系統,利用PubSub(類似Kafka)作為消息總線,任務被細化成多個Topic進行監聽,由不同的Worker進行處理。這樣一方面減少了不同任務的耦合度,防止一個任務處理異常導致其他任務中斷;另一方面,任務基于消息總線傳遞,不同的數據任務擴展性變得更好,性能不足時可快速橫向擴展。

任務粒度細化

從任務粒度上看(如圖3),數據處理分為基礎數據處理與高階數據處理兩部分。基礎數據,即比賽的詳情信息(KDA、傷害與補刀等數據)和錄像分析數據(Roshan擊殺數據、傷害類型與英雄分路熱力圖等數據)由Supervisor獲取Steam數據觸發,經過worker的清理后存入Google Bigtable;高階數據,即多維度的統計數據(如英雄、道具和團戰等數據),在錄像分析后觸發,并通過GCP的Dataflow和自建的分析節點(worker)聚合,最終存入MongoDB與Google Bigtable。

從Leauge-ETL的細化架構看(如圖4),原有的單個Slave節點被拆分成4個子模塊,分別是聯賽數據分析模塊、聯賽錄像分析模塊、分析/挖掘數據DB代理模塊和聯賽分析監控模塊。

聯賽數據分析模塊負責錄像文件的拉取(salt、meta文件與replay文件的獲取)與比賽基本數據分析

聯賽錄像分析模塊負責比賽錄像解析并將分析后數據推送至PubSub

分析/挖掘數據DB代理負責接收錄像分析數據并批量寫入Bigtable

聯賽分析監控模塊負責監控各任務進度情況并實時告警

同時所有的模塊選擇Golang重構,利用其“天生”的并發能力,提高整個系統數據挖掘和數據處理的性能。

League-ETL架構(圖4)

分布式存儲

如上文提到,1.0架構中我們使用MySQL存儲大量比賽數據及錄像分析數據。MySQL在大數據高并發的場景下,整體應用的開發變得越來越復雜,如無法支持schema經常變化,架構設計上需要合理地考慮分庫分表的時機,子庫的數據到一定量級時面臨的擴展性問題。

參考Google的Bigtable(詳情見Bigtable: A Distributed Storage System for Structured Data)及Hadoop生態的HBase(圖5),作為一種分布式的、可伸縮的大數據存儲系統,Bigtable與HBase能很好的支持數據隨機與實時讀寫訪問,更適合FunData數據系統的數據量級和復雜度。

 

Hadoop生態(圖5)

在數據模型上,Bigtable與HBase通過RowKey、列簇列名及時間戳來定位一塊數據(Cell)。(如圖6)

數據索引(圖6)

例如,在FunData數據系統中,比賽數據的RowKey以hash_key+match_id的方式構建,因為DOTA2的match_id是順序增大的(數值自增量不唯一),每個match_id前加入一致性哈希算法算出的hash_key,可以防止在分布式存儲中出現單機熱點的問題,提升整個存儲系統的數據負載均衡能力,做到更好的分片(Sharding),保障后續DataNode的擴展性。

(如圖7) 我們在hash環上先預設多個key值作為RowKey的前綴,當獲取到match_id時,通過一致性哈希算法得到match_id對應在hash環節點的key值,最后通過key值與match_id拼接構建RowKey。

一致性hash構建RowKey(圖7)

時間戳的使用方便我們在聚合數據時對同一個RowKey和Column的數據重復寫入,HBase/Bigtable內部有自定的GC策略,對于過期的時間戳數據會做清理,讀取時取最新時間節點的數據即可。

這里大家可能會有個疑問,Bigtable與HBase只能做一級索引,RowKey加上hash_key之后,是無法使用row_range的方式批量讀或者根據時間為維度進行批量查詢的。在使用Bigtable與HBase的過程中,二級索引需要業務上自定義。在實際場景里,我們的worker在處理每個比賽數據時,同時會對時間戳-RowKey構建一次索引并存入MySQL,當需要基于時間批量查詢時,先查詢索引表拉取RowKey的列表,再獲取對應的數據列表。

在數據讀寫上,Bigtable/HBase與MySQL也有很大的不同。一般MySQL使用查詢緩存,schema更新時緩存會失效,另外查詢緩存是依賴全局鎖保護,緩存大量數據時,如果查詢緩存失效,會導致表鎖死。

如圖8,以HBase為例,讀取數據時,client先通過zookeeper定位到RowKey所在的RegionServer,讀取請求達到RegionServer后,由RegionServer來組織Scan的操作并最終歸并查詢結果返回數據。因為一次查詢操作可能包括多個RegionServer和多個Region,數據的查找是并發執行的且HBase的LRUBlockCache,數據的查詢不會出現全部鎖死的情況。

HBase架構(圖8)

基于新的存儲架構,我們的數據維度從單局比賽擴展到了玩家、英雄、聯賽等。(如圖9)

數據維度(圖9)

系統解耦

上文我們提到1.0架構中使用In-Memory的消息隊列做數據傳遞,由于內存中隊列數據沒有持久化存儲并與Master模塊強耦合,Master節點更新或者異常Panic后會導致數據丟失,且恢復時間冗長。因此,在2.0架構中采用了第三方的消息隊列作為消息總線,保障系統“上下游”節點解耦,可多次迭代更新,歷史消息變得可追蹤,基于云平臺消息堆積也變得可視化(如圖10)。

數據監控(圖10)

數據API層

1.0系統的數據API層為實現快速上線,在架構上未做太多的設計與優化,采用域名的方式實現負載均衡,并使用開源的DreamFactory搭建的ORM層,利用其RESTful的接口做數據訪問。該架構在開發和使用過程中遇到許多問題:

API層部署在國內阿里云上,數據訪問需要跨洋

ORM層提供的API獲取表的全字段數據,數據粒度大

無緩存,應對大流量場景(如17年震中杯與ESL)經常出現服務不可用

多DB的數據聚合放在了API層,性能不足

服務更新維護成本高,每次更新需要從域名中先剔除機器

針對上述問題,我們從兩個方面重構了1.0數據API層。(如圖11)

數據API新架構(圖11)

鏈路的穩定性

全球鏈路上,我們使用CDN動態加速保證訪問的穩定性。同時利用多云廠商CDN做備份容災,做到秒級切換。

在調度能力和恢復能力上,我們搭建了自己的灰度系統,將不同維度的數據請求調度到不同的數據API,減少不同維度數據請求量對系統的影響;借助灰度系統,API服務更新的風險和異常時的影響面也被有效控制。依賴云平臺可用區的特性,灰度系統也能方便地實現后端API服務跨可用區,做到物理架構上的容災。

另外,為保證內部跨洋訪問鏈路的穩定性,我們在阿里云的北美機房搭建數據代理層,利用海外專線來提升訪問速度。

數據高可用性

接入分布式存儲系統后,對外數據API層也根據擴展的數據維度進行拆分,由多個數據API對外提供服務,例如比賽數據和聯賽賽程等數據訪問量大,應該與英雄、個人及道具數據分開,防止比賽/賽事接口異常影響所有數據不可訪問。

針對熱點數據,內部Cache層會做定時寫入緩存的操作,數據的更新也會觸發Cache的重寫,保障賽事期間的數據可用。

結語

在本篇的技術分享中,我們介紹了FunData數據平臺架構演進的過程,分析了舊系統在架構上的缺點,以及在新系統中通過什么技術和架構手段來解決。FunData自4月10日上線以來,已有300多位技術開發者申請了API-KEY。我們也在著力于新數據點的快速迭代開發,如聯賽統計數據,比賽實時數據等。下一篇我們將介紹FunData系統如何基于K8S進行跨云平臺的管理及處理耗資源的計算上,如何利用Serverless服務/函數計算提高內部系統資源利用率等內容。

責任編輯:何星 來源: 51CTO
相關推薦

2019-06-27 18:30:30

數據平臺架構

2015-07-23 10:14:56

個推

2014-09-24 10:24:11

電競廣告央視柳巖

2013-08-22 14:37:03

AdMaster

2018-04-03 13:53:10

2021-03-05 14:11:12

智能配送

2021-09-02 16:10:57

系統數據存儲

2013-12-30 17:03:08

2018-11-29 09:36:45

架構系統拆分結構演變

2016-08-02 16:06:18

大數據系統數據采集

2015-10-22 15:15:58

Acer

2023-07-26 08:51:08

大數據服務架構

2024-03-06 11:22:33

架構演進技巧
點贊
收藏

51CTO技術棧公眾號

日韩中文字幕二区| 国产一区二区三区高清| 欧美老熟妇一区二区三区| 视频一区在线| 欧美午夜视频在线观看| 亚洲欧洲精品在线观看| 99国产精品99| 国产精品亚洲综合色区韩国| 中文字幕av一区二区三区谷原希美| 欧美一级视频在线| 国产精品电影| √…a在线天堂一区| 狠狠色综合欧美激情| 这里只有精品999| 亚洲视频碰碰| 日韩少妇与小伙激情| 欧美双性人妖o0| 日韩一区二区三免费高清在线观看| 亚洲高清中文字幕| 中文有码久久| 美女毛片在线看| 国产a区久久久| 国产精品视频网址| 久久国产视频播放| 欧美69wwwcom| 伊人久久久久久久久久久久久| 欧美久久久久久久久久久| 国产乱子精品一区二区在线观看| 亚洲成人高清在线| 中文字幕av导航| 国产小视频在线| 成人一区二区三区视频在线观看| 91精品国产自产在线| 国产精品suv一区| 在线欧美三区| 欧美精品在线网站| 久久久久久成人网| 先锋影音国产精品| 亚洲成人教育av| 欧美一级片在线免费观看| 亚洲资源在线| 欧美日本国产一区| av网站在线不卡| 色老头在线一区二区三区| 一区二区国产盗摄色噜噜| 一本一生久久a久久精品综合蜜| 免费在线超碰| 久久综合久久99| 看高清中日韩色视频| 天天干天天舔天天射| 国产福利91精品一区二区三区| 国产精品一区专区欧美日韩| 欧美特级黄色片| 羞羞视频在线观看欧美| 26uuu日韩精品一区二区| 精品无码人妻一区二区三区品| 亚洲天堂免费| 大胆欧美人体视频| 福利所第一导航| 午夜日韩视频| 欧美激情精品久久久久久变态| 欧美性猛交xxxxx少妇| 国产精品久久久久久久久久10秀| www.日本久久久久com.| 日韩免费av一区| 天天av综合| 不卡中文字幕av| 欧美日韩人妻精品一区二区三区| 午夜日韩在线| 午夜精品久久久久久99热| 在线观看亚洲欧美| 久久一二三区| 国产欧美精品一区二区| 91精品视频免费在线观看| 日本sm残虐另类| 91精品免费看| 性做久久久久久久久久| 成人av网站免费观看| 久久www免费人成精品| 男人天堂亚洲二区| 国产精品日韩精品欧美在线 | 日韩激情精品| 精品国产3级a| www色com| 欧美激情无毛| 欧美一级大片视频| 一区两区小视频| 国产高清在线观看免费不卡| 久久资源亚洲| 国产淫片在线观看| 天天影视涩香欲综合网| 欧美日韩亚洲自拍| 伊人久久影院| 国产一区二区欧美日韩| 久草综合在线视频| 免费日韩av片| 91久久精品日日躁夜夜躁国产| 日本黄色免费视频| 国产清纯白嫩初高生在线观看91 | 国产欧美日本| 成人av.网址在线网站| 日本韩国在线观看| 中文字幕一区二区三区在线不卡| www.av毛片| 日本免费一区二区三区等视频| 欧美成人一区二区三区| 韩国女同性做爰三级| 欧美国产专区| 国产精品久久久久久超碰| 精品国产无码AV| 国产色91在线| 欧美一级欧美一级| 亚洲精品一区av| 亚洲欧美视频在线| 国产在线欧美在线| 看国产成人h片视频| 免费毛片一区二区三区久久久| 黄色成人影院| 欧洲精品一区二区三区在线观看| 欧美久久久久久久久久久| 欧美大片aaaa| 国产成人亚洲综合91精品| 亚洲AV无码成人片在线观看| 国产精品理论片在线观看| 成人免费aaa| 亚洲国产视频二区| 精品国内亚洲在观看18黄| 国产女主播喷水视频在线观看| hitomi一区二区三区精品| 大桥未久一区二区| 青青伊人久久| 色诱女教师一区二区三区| 黑人精品无码一区二区三区AV| 高清av一区二区| 椎名由奈jux491在线播放| 四虎4545www国产精品| 日韩毛片中文字幕| 日韩久久久久久久久| 国产精品自拍一区| 日本老太婆做爰视频| 亚洲成人1区| 中文字幕日韩高清| 中文字幕二区三区| 国产精品污www在线观看| 精品国产成人av在线免| 九九热线有精品视频99| 欧美一区二区三区免费观看| 日本a一级在线免费播放| 天天影视涩香欲综合网 | 亚洲成a人片77777在线播放| 91精品国产91久久久久久| 欧美视频一二区| 亚洲成a人在线观看| 日本三级日本三级日本三级极| 一区精品久久| 国产一区国产精品| 波多野结衣亚洲| 亚洲视频日韩精品| 波多野结衣mp4| 国产精品美女久久久久久久久 | 黄色a级在线观看| 伊人久久大香| 久久99国产综合精品女同| 亚洲国产精品久久久久爰性色| 一区二区成人在线| 欧美 日本 国产| 亚洲综合不卡| 香蕉久久夜色| 欧美9999| 欧美性一区二区三区| 高清av电影在线观看| 欧美色图一区二区三区| 99久久婷婷国产综合| 岛国一区二区在线观看| 男人揉女人奶房视频60分| 国产一区二区三区网| 成人黄色激情网| 国产蜜臀在线| 亚洲欧美激情一区| 一区二区三区免费在线视频| 一区二区在线观看av| 91av在线免费| 美女看a上一区| 欧美激情亚洲天堂| 亚洲国产欧美日韩在线观看第一区| 国产精品96久久久久久又黄又硬| 亚乱亚乱亚洲乱妇| 亚洲第一区在线观看| 不卡av电影在线| 亚洲精品五月天| 六月婷婷七月丁香| 国产乱色国产精品免费视频| 六月丁香婷婷激情| 91精品国产自产拍在线观看蜜| 国产精品免费视频一区二区| 成人免费网站www网站高清| 欧美成人在线影院| 国产在线黄色| 亚洲а∨天堂久久精品喷水| 男操女视频网站| 亚洲高清一区二区三区| 美国精品一区二区| av爱爱亚洲一区| 婷婷激情综合五月天| 水蜜桃久久夜色精品一区的特点 | 亚洲欧美日本日韩| 欧美日韩在线免费观看视频| 少妇精品久久久一区二区| 亚洲自拍小视频| 欧美日韩免费观看视频| 国语自产精品视频在线看一大j8| 91se在线| 亚洲日本成人网| 神马一区二区三区| 欧美一区二区三区公司| 无码无套少妇毛多18pxxxx| 亚洲成人激情自拍| 美女视频黄免费| 亚洲欧美影音先锋| 五月天精品视频| 成人不卡免费av| 毛片毛片毛片毛片毛| 蜜臀va亚洲va欧美va天堂| 国产超级av在线| 亚洲激情自拍| 999久久欧美人妻一区二区| 欧美激情成人| 亚洲一二三区在线| 精品国产一区一区二区三亚瑟| 国产综合动作在线观看| 香蕉成人app| 成人做爽爽免费视频| 六九午夜精品视频| 国产精品视频内| 高清在线一区| 国产精品xxx视频| 色老太综合网| 日本视频久久久| 国产高清不卡| 欧洲精品毛片网站| 亚洲天堂av在线| 91成人在线播放| 欧美男人天堂| 青草成人免费视频| 欧美gay视频| 国产精品1234| av成人在线观看| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 欧美aa视频| 日韩av片永久免费网站| 中文字幕21页在线看| 欧美一区亚洲一区| 国精产品一区一区三区四川| 国产精品久久久久7777婷婷| 国产精品亚洲d| 国产精品久久久久久久久久99| 日日av拍夜夜添久久免费| 国产精品白丝jk喷水视频一区| 国产综合色区在线观看| 国产精品久久久久久超碰 | 免费视频久久| 无码日韩人妻精品久久蜜桃| 免费视频一区二区| 在线视频观看一区二区| 国产精品一二三| 在线天堂www在线国语对白| 久久久久久久电影| 农村老熟妇乱子伦视频| 亚洲精品第1页| 国产极品在线播放| 在线影院国内精品| 国产视频第一页| 亚洲白虎美女被爆操| 国产在线视频资源| 欧美成人免费一级人片100| av伦理在线| 国产精品免费网站| 日韩精品三级| 欧美日韩免费观看一区| 91综合网人人| 日韩国产一级片| 丝袜亚洲精品中文字幕一区| 天天综合成人网| 91亚洲国产成人精品一区二区三| 日本一区二区视频在线播放| 亚洲免费大片在线观看| 日韩精品久久久久久免费| 欧美日韩和欧美的一区二区| 日本激情一区二区| www日韩中文字幕在线看| 金瓶狂野欧美性猛交xxxx| 国产福利视频一区| 亚洲成av人片在线观看www| 鲁片一区二区三区| 亚洲精品电影| 日韩黄色片视频| 国产馆精品极品| 欧美三级视频网站| 亚洲国产精品久久久久秋霞影院| 羞羞色院91蜜桃| 亚洲国产第一页| 麻豆tv入口在线看| 日韩av观看网址| 99er精品视频| 日韩av电影免费播放| 国产一区美女| 欧美一级小视频| 国产亚洲欧美一级| 精品无码久久久久久久久| 欧美日韩另类一区| 日本不卡免费播放| 久久久午夜视频| 日韩一区二区三区色| 亚洲欧美一区二区原创| 日韩视频一区| 国内自拍偷拍视频| 国产精品电影院| 无码人妻丰满熟妇区五十路| 精品欧美乱码久久久久久| 国产精品一区二区三区视频网站| 国产99久久精品一区二区永久免费 | 香蕉视频网站在线观看| 日韩av不卡电影| 日韩欧美在线精品| 97视频在线免费| 国产一区不卡精品| 日本一级片免费| 欧美亚洲综合一区| 久久久久久久久亚洲精品| 26uuu另类亚洲欧美日本一| 97久久综合区小说区图片区| 手机看片日韩国产| 久久66热偷产精品| 亚洲国产精品一区二区久久hs| 91福利国产成人精品照片| 日本ー区在线视频| 日本亚洲欧洲色α| 最新精品国偷自产在线| 丁香六月激情婷婷| 成人午夜精品一区二区三区| 免费毛片在线播放免费| 日韩一区二区精品葵司在线| www免费在线观看| 91超碰在线免费观看| 一区二区影院| 性高潮久久久久久| 亚洲一区二区欧美日韩| 亚洲精品中文字幕成人片| 欧美国产中文字幕| 成人激情自拍| 欧美性大战久久久久xxx| 91麻豆国产福利精品| av黄色在线播放| 亚洲少妇中文在线| 成人影院在线免费观看| 一区二区视频在线免费| 国精产品一区一区三区mba视频| 久久福利免费视频| 欧美一级专区免费大片| 欧美另类tv| 久久久久久亚洲精品不卡4k岛国 | 亚洲一本大道在线| 天天干天天爽天天操| 国产成人亚洲综合青青| 欧美独立站高清久久| 欧美69精品久久久久久不卡| 亚洲成人在线免费| 男人天堂综合| 成人精品一区二区三区| 极品日韩av| 日韩人妻无码一区二区三区| 欧美性猛交xxxx乱大交退制版| 欧美18hd| 国产伦精品一区二区三区四区视频 | 老汉色老汉首页av亚洲| 日韩一级片播放| 自拍偷拍亚洲欧美日韩| 日韩永久免费视频| 国产精品27p| 欧美一区精品| 性久久久久久久久久| 3d动漫精品啪啪一区二区竹菊| xxx性欧美| 色涩成人影视在线播放| 国产激情视频一区二区在线观看 | 中文字幕av久久爽一区| 6080国产精品一区二区| 波多野一区二区| 亚洲精品免费在线看| 不卡av在线网| 中文字幕无码乱码人妻日韩精品| 久久69精品久久久久久久电影好 | 日本wwww视频| 成人欧美一区二区三区白人| 天天操天天干天天干| 国产日韩精品视频| 国产麻豆综合| 丰满少妇高潮久久三区| 亚洲视频在线视频| 91麻豆精品激情在线观看最新 |