談談微信紅包海量運營--發(fā)10億個紅包難在哪里卦碾?【轉(zhuǎn)載】

騰訊大講堂&何嘉??發(fā)表于 2015.3.21712瀏覽3討論

編者按:2015年微信紅包書寫了一個全新奇跡——除夕搖一搖總次數(shù)110億次,峰值1400萬次/秒起宽,8.1億次每分鐘洲胖,微信紅包收發(fā)達10.1億次!驚人數(shù)字的背后坯沪,騰訊是怎么支撐的绿映?筆者有幸節(jié)前采訪到微信后臺技術(shù)負責人,與大家分享紅包背后的技術(shù)腐晾。

春晚當天叉弦,微信紅包聯(lián)合團隊徹夜加班全程守護

400倍的挑戰(zhàn)

今年微信紅包方式與去年用戶與用戶之間互發(fā)紅包相比,搖紅包的方式對業(yè)務量來說是一個極大的爆發(fā)藻糖,光是除夕10:30送出的一波紅包就達到了1.2億個淹冰,已經(jīng)是2014年除夕夜峰值的400倍之巨(2014年峰值每分鐘被拆開紅包數(shù)量僅2.5W個)!

進入搶紅包環(huán)節(jié)巨柒,后臺數(shù)據(jù)瞬間飆升

發(fā)10億紅包樱拴,難在哪里柠衍?

微信團隊總結(jié)下來有三大難點:

快——如何保證用戶快速搖到紅包?

準——如何保證搖到的紅包能成功拆開晶乔?

穩(wěn)——如何保證拆開的紅包能分享出去珍坊?

大量用戶在同一時間搖紅包,瞬間產(chǎn)生每秒千萬級的請求正罢,這個量級的請求如果不加以疏導處理直接到達后臺垫蛆,必定會導致后端服務過載甚至崩潰。

三大應對策略齊上陣

對于以上三個難點腺怯,微信后臺開發(fā)團隊主要通過三大應對策略應對:有損服務袱饭,柔性可用,大系統(tǒng)小做

??有損服務-追求高可用和快速響應呛占。

什么是有損服務虑乖?有損服務是通過精心拆分產(chǎn)品流程,選擇性犧牲一部分數(shù)據(jù)一致性和完整性從而保證核心功能絕大多數(shù)運行晾虑。這是騰訊在PC時代積累下來的一種特色運營策略——在資源一定的前提下疹味,互聯(lián)網(wǎng)條件千變?nèi)f化的場景中,量力而為帜篇,滿足用戶的核心需求糙捺。

微信紅包的核心點是搖,拆笙隙,分享紅包洪灯,整個系統(tǒng)設計時必須盡最大可能保證這三個步驟一氣呵成,任何關(guān)聯(lián)系統(tǒng)出現(xiàn)異常的時候馬上進行系統(tǒng)降級竟痰,防止引起系統(tǒng)雪崩签钩。

系統(tǒng)降級可以分為兩個方面,一是把核心功能進行分拆和簡化坏快,通過輔助輕量化的服務實現(xiàn)铅檩,確保最短關(guān)鍵路徑的可行,比方說在接入層置入搖紅包邏輯莽鸿,將每秒千萬級請求轉(zhuǎn)化為每秒萬級的紅包請求昧旨,再傳到紅包服務的后端邏輯,降低雪崩的可能性祥得。

同時后端采用異步分拆兔沃,接收到用戶請求時僅進行合法性驗證,驗證完成后直接告知成功啃沪,后續(xù)業(yè)務邏輯進入異步隊列進行處理粘拾,減少了用戶的等待時間,也極大降低了峰值雪崩的概率创千。

耗時最長的入賬操作缰雇,直接跳過入偷,異步處理

另外一方面是采取過載保護措施:

微信紅包的過載保護在客戶端已提前預埋了策略,在連接失敗或超時情況下會有相應提示械哟,減少用戶重復請求次數(shù)疏之。接入層面也會進行自我保護,針對頻繁發(fā)出請求的客戶端限制響應速度暇咆,并對系統(tǒng)負載劃分出若干等級锋爪,達到不同閾值時引導客戶端使用不同限速速率;在異常情況出現(xiàn)時爸业,采取減少紅包數(shù)其骄,異步限流降低拆/分享紅包的速率等措施減輕服務器端壓力;與此同時扯旷,微信紅包還有全程壓測流程拯爽,對整個業(yè)務鏈接進行自動提前評估,防止過載钧忽。

這畫面你可能沒見過毯炮,它其實早已在手機待命

在有損服務思想的重重保護下,第一波的搖紅包體驗活動中耸黑,微信紅包幾乎滿分通過考驗桃煎,其中過載保護的作用相當明顯,在客戶端大刊、接入層層減壓为迈、過濾,最終僅把十萬級壓力傳遞到后臺奈揍。

??柔性可用-細化場景把握核心需求曲尸。

柔性可用是在有損服務價值觀支持下的方法赋续,重點在于實際上會結(jié)合用戶使用場景男翰,根據(jù)資源消耗,調(diào)整產(chǎn)品策略纽乱,設計幾個級別不同的用戶體驗場景蛾绎,保證盡可能成功返回關(guān)鍵數(shù)據(jù),并正常接受請求鸦列,絕不輕易倒下租冠。

柔性服務更具有產(chǎn)品的思維性質(zhì),意義在于深刻理解產(chǎn)品每一個場景的核心價值薯嗤,把握用戶在每一個場景中的核心需求顽爹,設計不同層次的滿足核心訴求的辦法,對柔性服務在微信紅包中的實踐骆姐,紅包團隊也有相應的措施镜粤,主要可以分為幾大類捏题。

1、系統(tǒng)容災:面對大規(guī)模的請求量肉渴,系統(tǒng)容災必不可少公荧,容災一般可分為邏輯層容災和數(shù)據(jù)層容災,這次微信后臺開發(fā)團隊在容災布置中采用30%切換的邏輯層方案同规,即核心服務都能做到最多1/3服務器出問題的情況下自動容災切換以保證服務質(zhì)量循狰,提高預警級別換取系統(tǒng)的可用性。

2券勺、資源隔離:顧名思義就是把資源進行隔離減少服務支路間的影響绪钥,從邏輯入手,在資源邏輯中关炼,當A服務同時分派任務給BC服務時昧识,設定單個最大分配上限值,避免任意一個支路出問題影響整個服務鏈條盗扒,這樣即使部分服務出現(xiàn)問題也不會影響到整個服務的崩塌跪楞。

3、快速拒絕:當服務過載時盡早拒絕請求侣灶,由服務調(diào)用方換機重試避免單一服務器重試過載甸祭,快速拒絕和有損服務中的及早拒絕是一個概念的方法,從過程的源頭將問題解決褥影,成本越低池户,影響越小,前端保護后端的方式來解決問題凡怎。

4校焦、支付分組:從支付環(huán)節(jié)入手,將所有紅包分為50個組统倒,放在50個單獨的set上互不影響寨典,單組set出問題最多只影響1/50用戶,保證多數(shù)人服務不受干擾房匆。分組set化也是柔性可用的一個重要技術(shù)手段耸成,這一思維非常類似于現(xiàn)實生活中的集裝箱思維——通過標準化,規(guī)脑『瑁化的箱體設計井氢,應對復雜多樣的貨物,使每個流通環(huán)節(jié)既獨立又不失靈活岳链。

5花竞、流量預加載:從客戶端入手,將語音圖片等極消耗流量的資源提前讓客戶端自動下載預置好掸哑,提前將流量洪峰疏導约急,并在活動當天CDN將準備數(shù)百G帶寬應對寇仓,這塊也與過載保護中的快慢分離是相通的,將耗流量的服務提前加載避免高峰期間的沖突烤宙。

??大系統(tǒng)小做-保證進程的功能單一 ?遍烦。

大系統(tǒng)小做應該來說,是一種意識躺枕,他的核心思想是將功能復雜較大的系統(tǒng)服猪,化大為小,減少模塊耦合拐云,降低關(guān)聯(lián)性罢猪,用多個獨立的模塊來實現(xiàn)整體系統(tǒng)的功能,大系統(tǒng)小做采用的是化繁為簡叉瘩,分而治之膳帕,便于開發(fā)和迅速實現(xiàn)。

微信紅包如此龐大的后臺系統(tǒng)薇缅,模塊也相當之多危彩,而這次的模塊微信開發(fā)后臺團隊采用了系統(tǒng)高度模塊化的方式,分成一個個高度自制的小系統(tǒng)泳桦,形成高內(nèi)聚低耦合的格局汤徽,每個模塊之間不會過分依賴對方,這樣的好處是不會因為任何一個模塊而影響全部服務灸撰,避免牽一發(fā)動全身的風險谒府,實現(xiàn)真正的灰度服務。

海量服務能力決定成敗

從2014的滴滴打車浮毯,到2015的微信紅包完疫,騰訊用一個個案例,去證明自身在海量服務方面的實力债蓝。事實上壳鹤,真正支撐起微信紅包順暢運營的幕后英雄,正是騰訊內(nèi)部一個叫做“海量之道2.0”的技術(shù)體系惦蚊。有損服務器虾,柔性服務,大系統(tǒng)小做三大手段也是脫胎于此體系中蹦锋。移動互聯(lián)網(wǎng)大戰(zhàn)硝煙味愈濃,BAT都在為爭奪支付入口使出渾身解數(shù)欧芽,在業(yè)務從起步到小跑再到騰飛的過程中莉掂,巨頭背后的海量服務能力將對其最終成敗有著來越發(fā)深遠的影響。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末千扔,一起剝皮案震驚了整個濱河市憎妙,隨后出現(xiàn)的幾起案子库正,更是在濱河造成了極大的恐慌,老刑警劉巖厘唾,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件褥符,死亡現(xiàn)場離奇詭異,居然都是意外死亡抚垃,警方通過查閱死者的電腦和手機喷楣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹤树,“玉大人铣焊,你說我怎么就攤上這事『辈” “怎么了曲伊?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長追他。 經(jīng)常有香客問我坟募,道長,這世上最難降的妖魔是什么邑狸? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任婿屹,我火速辦了婚禮,結(jié)果婚禮上推溃,老公的妹妹穿的比我還像新娘昂利。我一直安慰自己,他們只是感情好铁坎,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布蜂奸。 她就那樣靜靜地躺著,像睡著了一般硬萍。 火紅的嫁衣襯著肌膚如雪扩所。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天朴乖,我揣著相機與錄音祖屏,去河邊找鬼。 笑死买羞,一個胖子當著我的面吹牛袁勺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畜普,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼期丰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钝荡,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤街立,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后埠通,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赎离,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年端辱,在試婚紗的時候發(fā)現(xiàn)自己被綠了梁剔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡掠手,死狀恐怖憾朴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喷鸽,我是刑警寧澤众雷,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站做祝,受9級特大地震影響砾省,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜混槐,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一编兄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧声登,春花似錦狠鸳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至脯厨,卻和暖如春铅祸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背合武。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工临梗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稼跳。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓盟庞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親岂贩。 傳聞我的和親對象是個殘疾皇子茫经,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容