透過12306五大焦點(diǎn)看高性能高并發(fā)系統(tǒng)
幽云十八 發(fā)表于:12年02月20日 09:46 [轉(zhuǎn)載] IT168
焦點(diǎn)二:類似12306的海量高并發(fā)系統(tǒng)與新浪、淘寶有何不同?
2011年在IT業(yè)內(nèi)是一個很熱火的一年,云計算、大數(shù)據(jù)以及Hadoop等概念鋪天蓋地襲來,并有諸如淘寶、人人網(wǎng)、即刻搜索以及 Facebook等許多率先實(shí)踐Hadoop的技術(shù)人員來分享應(yīng)用經(jīng)驗(yàn)。從表面看來,類似12306的高性能高并發(fā)系統(tǒng)與Facebook、微博以及淘寶 節(jié)假日搶購活動非常類似,并且,淘寶、新浪以及Facebook等都在這一塊做得非常的好。那么他們的經(jīng)驗(yàn)是否可以借鑒呢?
這一問題剛一拋出,就引起諸多的網(wǎng)友的關(guān)注,很多人認(rèn)為,12306完全可以借鑒這些先進(jìn)公司的經(jīng)驗(yàn)。但也有網(wǎng)友認(rèn)為,這其間還是存在本質(zhì)的區(qū)別。在2011年的“掘?qū)欻adoop—— 中國云計算大會”上的“大數(shù)據(jù)”分論壇中,在Facebook公司專注于大數(shù)據(jù)的邵錚曾就Facebook的數(shù)據(jù)處理分享了相關(guān)的經(jīng)驗(yàn)。Facebook 的瞬間并發(fā)最大的特點(diǎn)就是寫操作非常頻繁,而Facebook的解決之道則在于通過利用HBase寫速度快的特點(diǎn)來構(gòu)建數(shù)據(jù)庫(據(jù)邵錚的說法是HBase 在讀取上并不盡如人意),并對整個架構(gòu)進(jìn)行優(yōu)化來達(dá)到縮短時間的目的,微博跟Facebook在本質(zhì)上差不太多。而對于12306而言,在前面已經(jīng)說到,其實(shí)質(zhì)上應(yīng)當(dāng)屬于頻繁的混合讀寫操作,而且是小隨機(jī)頻繁讀寫,這在業(yè)內(nèi)是公認(rèn)的難題。
那么Facebook等新興SNS社區(qū)的經(jīng)驗(yàn)無法借鑒,那么淘寶的經(jīng)驗(yàn)可應(yīng)用于12306之上嗎?比較看起來,他們都逃脫不出電商的范疇。Amazon Global Selling 高級研發(fā)經(jīng)理陳皓在其博客中說,與網(wǎng)游或QQ的后端負(fù)載相比,12306購票系統(tǒng)的壓力顯然要大得多。因?yàn)榫W(wǎng)游和QQ在線或是登錄時訪問的更多的是用戶自己的數(shù)據(jù),而訂票系統(tǒng)訪問的是中心的票量數(shù)據(jù),這是不一樣的。
并且,這與淘寶的秒殺活動在本質(zhì)上也是有所不同,12306購票系統(tǒng)包含了很多查詢操作,查時間,查座位,查鋪位,一個車次不行,又查另一個車次, 其伴隨著大量的查詢操作,下單的時候需要對數(shù)據(jù)庫操作。而秒殺完全可以做成只接受前N個用戶的請求(完全不操作后端的任何數(shù)據(jù), 僅僅只是對用戶的下單操作log),這種業(yè)務(wù),只要把各個服務(wù)器的時間精確同步了就可以了,無需在當(dāng)時操作任何數(shù)據(jù)庫。
陳皓認(rèn)為,訂票系統(tǒng)應(yīng)該和電子商務(wù)的訂單系統(tǒng)很相似,都是需要對庫存進(jìn)行:1)占住庫存,2)支付(可選),3)扣除庫存的操作。這個是需要有一致 性的檢查的,也就是在并發(fā)時需要對數(shù)據(jù)加鎖的。相比于12306,B2C的電商基本上都會把這個事干成異步的,也就是說,你下的訂單并不是馬上處理的,而 是延時處理的,只有成功處理了,系統(tǒng)才會給你一封確認(rèn)郵件說是訂單成功。數(shù)據(jù)一致性是高并發(fā)下的一大難題。
而12306購票系統(tǒng)的難題在于其采用的是突然放票,而有的票又遠(yuǎn)遠(yuǎn)不夠大家分,所以,大家才會有搶票這種有做法。于是當(dāng)票放出來的時候,就會有幾 百萬人甚至上千萬人殺上去,查詢,下單。幾十分鐘內(nèi),一個網(wǎng)站能接受幾千萬的訪問量,這個是很恐怖的事情。據(jù)說12306的高峰訪問是10億PV,集中在 早8點(diǎn)到10點(diǎn),每秒PV在高峰時上千萬。
通過上述分析可以看出,12306購票系統(tǒng)所面對的幾乎是前所未有的難題,與號稱最高同時在線人數(shù)1億的QQ客戶端在本質(zhì)上有明顯的不同,與微博、 Facebook等新興SNS社區(qū)亦不同,單純的并發(fā)寫遠(yuǎn)遠(yuǎn)沒有頻繁的隨機(jī)混合讀寫那么難。而與12306業(yè)務(wù)模式有些許類似的B2C電商卻遠(yuǎn)遠(yuǎn)沒有 12306面對的那么大規(guī)模人群,可以說12306購票系統(tǒng)的出現(xiàn)是目前IT界的一大難題,其不僅是硬件,還包括軟件層面、架構(gòu)層面以及整體優(yōu)化都帶來了 極大的挑戰(zhàn),面對如此大規(guī)模的并發(fā),任何一個小細(xì)節(jié)都極有可能造成規(guī)模效應(yīng),而12306的倉促上線使得這些問題“并發(fā)”,最終導(dǎo)致“爆機(jī)”,而反觀淘 寶、亞馬遜以及 Facebook等,無一不是經(jīng)過多年的技術(shù)積淀后才勉強(qiáng)能夠應(yīng)付,而12306正式上線運(yùn)營至今不過短短半年多時間而已。
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.