国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何實現秒級百萬TPS?微博WAIC實時流計算平臺架構演進

原創
開發 架構 開發工具
隨著新浪微博業務的不斷推進,對數據處理的實時性要求越來越高。例如,大家所熟悉的微博熱詞,需要在很短的時間內完成數據處理以供在線系統使用。

[[244671]]

圖片來自包圖網

【51CTO.com原創稿件】WAIC 實時流計算平臺為新浪微博提供可靠的毫秒級和秒級實時數據處理服務,通過提供統一的數據源和配置化接入方式,幫助提高新浪微博實時作業的開發效率,降低部門開發與運營的成本。

2018 年 5 月 18-19 日,由 51CTO 主辦的全球軟件與運維技術峰會在北京召開。

在“高并發與實時處理”分會場,新浪微博實時流技術平臺負責人廖博帶來了《WAIC 實時流計算平臺的成長和繁衍》的主題演講。

本文將按照如下四個階段分享微博實時流計算平臺的搭建歷程,以及在創建過程中的一些問題和解決方案:

  • 初入實時流計算
  • 實時流計算平臺初建
  • 實時流計算平臺發展
  • 總結 DQRA 設計模式

初入實時流計算

首先介紹一下我們實時流計算平臺開發歷程:

  • 2015 年,我進入新浪微博。當年,我們利用實時流計算做出了物料池系統。
  • 2016 年,我們進行了用戶實時興趣反饋系統的開發。
  • 2017 年,我們接入了一些與多媒體相關的,如人臉識別系統的建設。同年,我們也開始進行實時流計算平臺的初建。
  • 2018 年,我們開啟了 WAIC 實時流計算平臺。

上圖是實時流計算的技術背景,常用的計算引擎有:Spark、Streaming、Flink、Storm、Flume 和 Kafka 等一些中間件。

 

我們 WAIC 實時流計算平臺中,主要用到的計算引擎是:Storm、Kafka、Flume 和 Flink。

上圖是實時流計算的第一階段。這是一個經典的架構,它通過利用 Flume,將業務系統里的實時流日志數據寫入 Kafka。

然后再利用 Storm 去讀取 Kafka 里的數據,最后將數據進行相應的業務邏輯處理。

在該階段,我們主要完成了如下兩項工作:

  • 讓微博“接入”實時流計算功能。
  • 當數據處理出現失敗時,使用 Kafka 來執行必要的數據回滾,從而解決問題。

上圖是第一階段相應的數據成果。彼時的數據量和集群個數都比較少,因此主要存在的問題包括:

  • 人工工作量比較多,即:面對需求時,全靠人編碼。
  • 代碼重復率比較高,異常排查的方式較為簡陋,全靠登錄到服務器上,去 Grep 日志。
  • 監控的方式則全靠腳本。

上圖是第一階段所遺留的一些問題。

實時流計算平臺初建

那么隨著實時流計算的頻繁使用、業務場景的增多、以及監控需求的提升,我們意識到需要搭建一個實時流的計算平臺。

我們當時所提出的平臺目標主要包括:

  • 研發一個工作量可以沉淀,并且可配置的開發框架。
  • 統一所有的監控,打造一個統一的監控平臺。

這是第二階段實時流的初步架構圖。在此,我們的接入日志方式豐富了許多。如圖,我們既通過 Scribe 進行收集、又從 Kafka 以及 Mcq 里面讀取數據。

然后通過 Scribe、或者其他的數據同步服務,將它們接入到實時隊列之中,最后在不同的業務場景下,利用不同的實時集群進行處理。

自研 WeiPig 框架

為了降低開發人員上手實時任務開發的門檻,我們自行研發了一個 WeiPig 框架。

它具有如下四個主要特點:

  • 配置化開發。對于一些簡單的開發需求,我們只需編寫 WeiPig 開發文件,便可實現。
  • 插件式編程。它提供一個插件式編程的編碼規范。對于初期的一些功能需求,我們按照相應的規范進行編碼,即我們通過編寫 WeiPig 文件,來滿足各種需求。
  • 通用解決方案。因為 WeiPig 是一個針對實時流而開發的應用框架,所以它需要滿足供應鏈上所有不同類型的實時流需求。
  • 統一貢獻機制。使不同的業務團隊,能夠按照同一套規范來進行相應的插件開發,并提供相應的插件功能。同時,他們也可以按照同樣的規范和機制,來使用其他團隊所提供的功能插件。

同時,我們需要通過該 WeiPig 框架,讓所有開發人員的工作模式“沉淀”下去,實現公司內各個部門的共享與協作。

統一監控平臺

如前所述,在第一階段,我們的監控實現方式基本上是:靠那些運行在不同服務器上的腳本,進行日志數據的采集,然后再發送報警郵件。

而進入第二階段之后,我們利用如上圖所示的實時流統一計算與監控平臺,對作業情況予以了展示與配置。

即:該系統既可以展示相應的數據監控指標,又可以對數據監控指標進行相應的報警配置。

而這些監控指標數據都是通過不同的搜集工具進行采集,然后錄入到 MySQL 數據庫之中。


上圖是第二階段相應的成果。雖然此時已經有了 WeiPig 開發框架,但是我們的人工工作量依然不少。

由于 WeiPig 的插件主要是由平臺方的幾名開發人員來實現,因此插件數量不但較少,而且他們的工作量也達到了 80%。

另外,代碼的重復率則僅占 50% 左右,這直接導致了異常排查的效率仍處于較低的水平。

同時,在監控配置上,我們仍需要手動配置,以及通過編寫腳本,來搜集相關的指標數據。

在第二階段之后,我們遺留下了不少問題,包括:

  • 權限機制的欠缺
  • 缺乏統一的資源調度
  • 問題排查相對較慢
  • 碎片資源相對較多(主要是因為我們使用的都是些小集群,這導致產生了大量遺留的冗余資源,閑置在系統中)
  • 缺乏高可靠的保障
  • 開發效率較低

實時流計算平臺發展

在步入實時流計算平臺的第三階段之后,我們提高了相應的宏觀目標,即:

  • 提高公司的開發生產效率,節省重復建設的成本。
  • 可視化各項操作。

上圖是當前實時流計算平臺的架構圖。數據流邏輯如下:

  • 用戶通過 UI 交互客戶端、以及 Weiclient 等交互模塊,將作業提交給控制中心。
  • 控制中心進行初步的權限校驗和資源審核之后,將資源提交給任務調度。
  • 任務調度將相應的作業提交給對應的集群 Weibox。
  • 如果作業提交成功,Weibox 會把相應的作業信息重新返回給控制中心。
  • 控制中心將作業通過用戶交互客戶端返回給用戶結果。同時,它會將作業信息同步給管理服務后臺。
  • 用戶通過管理服務后臺的客戶端,去操作自己在集群上面的功能。控制中心既能減少已占用的資源,又能為每一個團隊實現資源控制。

控制中心初現

由于前期各種作業(如 Storm)在向集群提交的時候,許多開發人員會自行配置一個本地環境,以實現直接提交,這就造成了平臺方很難對集群進行有效的管控。

因此對于我們第三階段的控制中心而言,其主要目標是:

  • 解決作業隨意提交,治理集群上作業混亂的現象。
  • 對集群資源進行統一管理,從而避免過多的資源浪費。

上圖是實時流計算平臺的控制中心架構圖。其流程如下:

  • “基礎模塊”通過權限校驗和資源審核,將作業提交給“作業上線流程”服務。
  • “作業上線流程”調用后置的檢查模塊,檢查該作業是否在集群上運行成功,以及判斷該作業所占用的資源、是否為它在提交時指定了資源量。
  • 如果“作業上線流程”服務提交作業成功,那么“資源決策服務”調用動態資源調節模塊,在集群上定時(如:每小時或每天)檢查該作業所使用和處理的數據量,以及每條數據的處理時長。籍此,該模塊運用簡單的公式,來判斷該作業是否需要占這么多資源。

上述提到過,一些開發人員可能會通過在自己的本機上配置相應的作業提交環境,以實現將作業提交到集群之中。

那么為了管控對應的業務組在集群上占用的資源量,我們在“資源決策服務”里,調用到了作業識別模塊。

資源配置策略

為了提高公司的生產開發效率,我們在第三階段實施了資源配置策略。同時,我們的核心目標點是:通過第二階段的 WeiPig 開發框架,來鼓勵各個業務團隊貢獻相應的插件。

其實 WeiPig 是一套規范協議,大家在貢獻插件之前需要增加學習上的投入。因此,對于一些已經實施了計算能力的業務方來說,雖然有利于將舊平臺遷移過來,但是他們不太愿意投入此類學習的成本。

所以我們想出了用資源去換取 WeiPig 前向發展的方法。我們將所有的平臺資源按照基礎資源、彈性資源、獎勵資源和平臺資源,四個方向進行劃分。

其中基礎資源僅占 1%,基本上只有一、兩臺機器。彈性資源有 20%,各個公司根據業務量和業務等級進行劃分,當業務量多的時候,每一個業務都可以有自己的重要程度和優先級。

值得一提的是:獎勵資源為 30%。它通過兩方面標準:WeiPig 里貢獻的 Function 數量,和這些通用 Function 會被多少業務方所使用到,來進行公式算法上的衡量。

如果你貢獻的多,而且被其他業務方使用的也比較多,那么我們就會從所有平臺資源的 30% 中,給你劃分出更多的資源。

實時對賬系統

為了滿足某些高成功率場景的需求,我們在第三階段自行設計了一個實時對賬系統。

該系統的主要成績是:滿足實時計算平臺完成 6 個 9 的數據成功率需求。

上圖是實時對賬系統的一個簡單架構圖。在數據處理開始時,我們會將數據寫入實時對賬系統,并打上開始標志。

同時,實時對賬系統會將該數據的開始處理、和結束處理的標志,存放到存儲服務上。

而圖中下方的離線定時服務,會定時查詢實時對賬系統,并進行如下判斷:

  • 如果一條數據既有入賬,又有根據處理結束值所求的出賬,則認為該條數據已處理完成,即對賬成功。
  • 如果一條數據只有數據處理的開始,卻沒有處理結束的標志,則該條數據可能出現被丟掉的情況,我們需要重試。
  • 如果一條數據只有數據處理結束,卻沒有數據處理成功的標志,則會發出相應的報警,我們需要查找相應的問題。

穩定性服務平臺

另外,在第三階段,我們將第二階段的“統一監控平臺”升級成了“穩定性服務平臺”。

其目標有如下三點:

  • 通用監控指標的數據統一生成。前面在第二階段的監控統一平臺中,我們必須在界面上去配置要監控的指標項目,通過編寫相應的采集代碼,然后把腳本部署到服務器上,以方便監控的采集。

但是在第三階段的穩定性服務平臺上,一個作業被提交到集群上之后,穩定性服務平臺會對集群上處理的數據量、處理延遲、錯誤量等通用指標進行統一生成。

  • 集群資源負載均衡的監控。其實 Storm 不像 Hadoop、Flink、Yum,它并沒有資源調度的管理系統。

因此,它在自己做管理資源時,會出現在一個集群中,某個服務器的 CPU 利用率已達 90%,而其他服務器的 CPU 利用率只占有 50%~60% 的情況。所以我們自行研發了對集群資源負載均衡的監控。

  • 監控指標采集平臺,統一所有監控數據的采集。

這里展示的是實時流計算平臺穩定性服務的架構圖。左側的數據采集平臺包括:Storm 指標項目數據收集、Kafka 數據堆積量的數據收集、日志收集平臺、監控腳本運行平臺、和服務器硬件資源的收集。

這是一個比較簡易的、便捷的資源負載均衡的監控服務。完成統一采集之后,系統調用數據存儲服務,經由服務平臺的管理服務平臺、運維服務平臺、和第三方服務平臺,對外面開發人員提供相應的服務。

上圖是第三階段相應的成果。目前,我們的平臺每天能處理大約一千多億的數據量,TPS 大約有百萬每秒,作業個數則每天約有 150~200 個。

如今無論是多媒體相關的數字計算需求,還是微博相關的處理需求,我們的人工工作量已相對較少了,主要的工作量集中在編寫 WeiPig 相應的配置文件上。相應的代碼重復率也比較低,同樣主要集中在 WeiPig 文件上。

另外,由于我們主要是到 HDFS 上去搜集和管控相應的日志,因此異常排查的效率適中。

而對于監控方式而言,我們大部分采用的是自動生成的方式,所以只對一些特殊要求才進行監控配置。

當然,目前的實時流計算平臺仍有兩個遺留問題:

  • 缺乏系統性的資源調度。我們需要有一個資源調度系統,來實時獲知集群上的作業到底應該運行在哪一臺服務器上。

目前我們采用的一種簡易方式是:搜集各臺服務器上的資源情況,然后用自己的程序進行判斷和處理。如果某一臺機器利用率高于其他服務器20%的話,那么我們認為其負載是不均衡的。

  • 日志收集方案不統一。

總結 DQRA 設計模式

我們在實時流計算開發的過程中,一邊搭建業務平臺,一邊解決了不少問題。因此我們總結出了一套 DQRA 的設計模式。

DQRA 詳解

它們分別是:

  • Difficulty(邏輯復雜度)
  • Quantity(數據量)
  • Reliability(可靠性)
  • Asynchronous(異步時序性)

因此,我們認為:面對大多數的需求,我們可以把問題的實現拆解為上述四個屬性中的某種。

例如:邏輯復雜度有難、中、易;數據量有大、中、小;可靠性是高、中、弱;等方面。

 

上述便是 DQRA 可能出現的不同組合,以及所對應的不同解決方法。

DQRA 案例分析

 

下面我們會介紹一個簡單案例,它包含如下特性:

  • D 難,表示實現的復雜度,即實時流作業中需要處理的邏輯比較難。
  • Q 中,表示數據量可能一般,可能是從幾千萬到十億之間。
  • R 高,表示可靠性高,即成功率要求高,如前面提到的 6 個 9 的數據處理成功率。

具體來說,它是一個圖像分析與處理類系統,需要具有持續穩定的服務保證。因此,系統穩定是第一位的。

其次,它要求數據處理的成功率大于 6 個 9,從而能應對單日 5000 萬的數據量。

因此,我們通過上述三個方面來實現該系統的需求:

  • 首先,針對系統的穩定性,我們采用的是內網和阿里云的“雙保險”網絡部署方式。
  • 其次,由于涉及到圖片的下載,而我們在做分析時,調用的是在線模型預測方式。

因此,為了避免可能出現的圖片分析失敗,我們采用了實時對賬系統,實現了必要的重試處理。

[[244673]]

廖博,新浪微博實時流技術平臺負責人,曾就職于搜狐、雅虎研究院、支付寶等公司參與 Data Highway、大數據系統、數據倉庫、UUS(User Understanding Service)等第一代大數據生態系統的搭建工作;現就職于新浪微博,主導和開發實時流計算平臺,基于該平臺之上完成多媒體分析平臺、物料池系統、樣本生成平臺等多個子系統的開發和建設。

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2018-05-16 14:04:05

人工智能新浪微博實時流計算

2020-01-20 09:01:22

搜索離線平臺

2017-10-13 13:13:14

人工智能深度學習微博

2023-05-10 07:21:58

數據平臺架構

2017-03-13 11:39:00

WOTWOTA高可用架構

2019-11-21 09:49:29

架構運維技術

2019-02-12 09:34:00

微博短視頻架構

2023-04-26 07:56:45

大模型機器學習

2015-09-24 18:08:50

微博架構架構演進架構

2020-03-18 07:11:24

實時同步搜索

2021-08-18 17:16:10

Git分片讀寫分離

2019-04-23 09:13:54

蘇寧采購架構

2023-03-16 07:20:15

大數據平臺云數據

2020-04-14 08:24:29

滴滴ElasticSear架構

2023-10-14 15:29:28

RedisFeed

2019-02-18 15:23:21

馬蜂窩MESLambda

2018-01-14 23:22:36

戴爾

2015-04-16 10:35:08

微博微博如何實現

2022-05-24 09:30:00

消息吞吐車聯網平臺車聯網

2022-05-18 10:07:29

EMQ車聯網MQTT
點贊
收藏

51CTO技術棧公眾號

日韩av电影手机在线| 欧美a级免费视频| www.亚洲国产| 国产精品免费观看| 一本久久综合亚洲鲁鲁| 爽好多水快深点欧美视频| 在线国产中文字幕| 亚洲精品黄网在线观看| 国产精品欧美大片| 国产在线拍揄自揄拍无码| 一本久久综合亚洲鲁鲁五月天| 性欧美18一19sex性欧美| www.亚洲免费视频| 国产成人av在线影院| 丁香高清在线观看完整电影视频| 国产精品毛片va一区二区三区| 午夜精品久久久久久久久久久| 成人一区不卡| av中文资源在线| 日韩精品一区二区三区四区五区 | 三级国产三级在线| 欧美成人精品激情在线观看| 国产亚洲电影| 777视频在线观看| 国产成人精品视频在线观看| 国产精品青草久久| 国产一区二区三区电影在线观看| 日韩国产小视频| xxxxxxxxx欧美| 精品中文字幕一区二区小辣椒| 羞羞小视频视频| 成人国产在线激情| 日韩精品一区在线| 岛国精品在线观看| 欧美成人基地| 亚洲人成无码www久久久| 成人中文字幕在线观看| 欧美探花视频资源| 加勒比久久高清| 一区二区国产日产| yw.139尤物在线精品视频| 久久精品国产精品亚洲综合| 欧美xoxoxo| 欧美色老女人| 久久av一区二区| 精品国内自产拍在线观看| 99riav久久精品riav| 国内亚洲精品| 欧洲黄色一区| 777精品久无码人妻蜜桃| 午夜精品福利在线观看| 欧洲另类一二三四区| 久久老女人爱爱| 欧美资源在线| 日韩激情网站| 欧美白人做受xxxx视频| 国产精品日韩三级| 欧美激情欧美狂野欧美精品| 欧日韩精品视频| 三级成人在线视频| 第四色在线一区二区| 忘忧草在线日韩www影院| 无圣光视频在线观看| 日本一级淫片演员| 国产精品一区久久久| 欧美成人午夜激情| 欧美一区二区日韩| 一本一道波多野结衣一区二区| 亚洲综合国产| 岛国大片在线观看| 爱福利视频一区二区| 国产福利视频一区| 欧美激情网站在线观看| 精品国产乱码久久久久久久久| 欧美极品美女视频| av高清久久久| 国产精品资源在线看| 日韩精品国产欧美| 欧美日韩三区| 欧洲激情综合| 欧美第一精品| 成人vr资源| 天天综合一区| 欧美一性一交| 亚洲免费福利一区| 青草av在线| 国产激情在线播放| 狼人综合视频| 久久av色综合| 91最新在线视频| 欧美黑人猛交| 麻豆免费在线视频| 天堂а√在线资源在线| 成人在线播放免费观看| 精品麻豆一区二区三区| 日本在线看片免费人成视1000| 国产中文字幕在线看| 黄视频在线观看免费| 男人久久精品| 久操视频在线免费播放| 无遮挡的视频在线观看 | 老牛国产精品一区的观看方式| 136国产福利精品导航网址| 国内精品久久久久久久久电影网| 亚洲区中文字幕| 欧美xxxxxxxx| 欧美黑人又粗大| 欧美在线一级va免费观看| 中文字幕在线看视频国产欧美在线看完整| 色狠狠桃花综合| 91久久精品一区二区二区| 欧美一区二区三区四区高清| 色一区av在线| 91av在线看| 国产精品亚洲网站| 正在播放91九色| 亚洲成色www.777999| 男男做性免费视频网| 国产精品免费播放| 91成人抖音| 国产不卡一二三区| 国产成人av一区二区三区在线观看| 亚洲精品欧美专区| 欧美一级国产精品| 久久97精品久久久久久久不卡| 国产精品日日摸夜夜添夜夜av| 午夜精品美女久久久久av福利| 宅男av一区二区三区| 四虎永久免费网站| 伊人春色在线| 男男激情在线| 给我免费播放日韩视频| 一本久道久久久| 久久超碰97中文字幕| 欧美色道久久88综合亚洲精品| 欧美色视频在线观看| 欧美三级一区二区| 国产精品日韩一区| 亚洲乱码国产乱码精品天美传媒| 妓院一钑片免看黄大片| 日韩欧美在线观看一区二区| 精品国产一区二| 日本aⅴ亚洲精品中文乱码| 亚洲v中文字幕| 国产盗摄xxxx视频xxx69| 国产欧美自拍视频| av中文在线| 黄色精品免费| 欧美日韩一区二区免费在线观看 | 国产成人av一区二区三区在线观看| 欧美色国产精品| 高清视频一区二区三区| 久草在线青青草| 99精品免费网| 欧美一区二区三区视频免费 | 久久久久久久网| 久久久国产精彩视频美女艺术照福利| 亚洲国产精品一区二区第一页| 日本中文字幕在线2020| 亚洲三级观看| 日韩一区二区三区四区| 国产一级特黄a大片99| 日韩av一级大片| 22288色视频在线观看| 黑人一区二区三区| 国产一区二区中文| 精品国产乱码久久久久久久久 | 一区二区在线观看免费视频播放| 亚洲视频在线免费看| 一区视频二区视频| 日本在线视频一区二区三区| 一区二区三区资源| 久久综合九色综合久99| 影视一区二区三区| 日本午夜一本久久久综合| 欧美男人的天堂一二区| 2022国产精品| 日本三级在线观看网站| 国产精品夜夜爽| 久久成人在线视频| 黄网站app在线观看下载视频大全官网| 午夜免费一区| 7777精品伊人久久久大香线蕉经典版下载 | 国产亚洲日本欧美韩国| www黄色av| 女主播福利一区| 懂色av中文一区二区三区天美| 国产成人拍精品视频午夜网站| 一级毛片国产| 国产一区二区三区综合| 亚洲视频精品在线| 99不卡视频| 91亚洲精品| 欧美日韩国产片| 六月婷婷在线视频| 国产精品入口| 成人av在线亚洲| 日本韩国欧美超级黄在线观看| 亚洲国产精品电影| 永久免费av在线|