看奇跡的背后:淘寶復(fù)雜在哪里?
淘寶帝國(guó)
雙11無(wú)疑是淘寶系(淘寶+天貓)的獨(dú)舞。
阿里集團(tuán) 11 月 12 日凌晨確認(rèn),11.11購(gòu)物狂歡節(jié)的支付寶總銷售額達(dá)到 191 億元,是去年的三倍多,其中僅天貓就達(dá)成了 132 億元,淘寶則完成了 59 億元。
- 一個(gè)讓人瞠目的結(jié)果:如果將百元大鈔摞起來(lái),191億元可高達(dá)1.9萬(wàn)米,相當(dāng)于世界最高建筑迪拜塔(828米)的 23 倍,用常用點(diǎn)鈔機(jī)需要耗費(fèi) 133 天。
- 另一個(gè)讓人瞠目的結(jié)果則是:“光棍節(jié)”當(dāng)日天貓涌入了2.13億網(wǎng)民。
為了阻擊天貓光棍節(jié)促銷,競(jìng)爭(zhēng)對(duì)手紛紛出擊,京東推出了沙漠風(fēng)暴行動(dòng),蘇寧推出了“3天3 夜超級(jí) 0 元購(gòu)”,形成“圍攻天貓”之勢(shì)。天貓最終成為贏家,盡管京東、易購(gòu)尚未公布結(jié)果,但 191 億元如一座高峰,競(jìng)爭(zhēng)對(duì)手只能仰望。
從技術(shù)看淘寶
這次奇跡的背后,是淘寶成千上萬(wàn)頂尖工程師每天努力的結(jié)果,那么他們每天都在努力什么?淘寶的復(fù)雜在哪里?為什么這么恐怖的訪問(wèn)量,淘寶還是能撐得???
先說(shuō)你看到的頁(yè)面上,最重要的幾個(gè):
- 搜索商品
這個(gè)功能,如果你有幾千條商品,完全可以用select * from tableXX where title like %XX%這樣的操作來(lái)搞定。但是——當(dāng)你有10,000,000,000(一百億)條商品的時(shí)候,任何一個(gè)數(shù)據(jù)庫(kù)都無(wú)法存放了,請(qǐng)問(wèn)你怎么搜索?
這里需要用到分布式的數(shù)據(jù)存儲(chǔ)方案,另外這個(gè)搜索也不可能直接從數(shù)據(jù)庫(kù)里來(lái)取數(shù)據(jù),必然要用到搜索引擎(簡(jiǎn)單來(lái)說(shuō)搜索引擎更快)。好,能搜出商品了,是否大功告成可以啵一個(gè)了呢?早著呢,誰(shuí)家的商品出現(xiàn)在第一頁(yè)?這里需要用到巨復(fù)雜的排序算法。要是再根據(jù)你的購(gòu)買行為做一些個(gè)性化的推薦——這夠一幫牛叉的算法工程師奮斗終生了。
- 商品詳情
就是搜索完畢,看到你感興趣的,點(diǎn)擊查看商品的頁(yè)面,這個(gè)頁(yè)面有商品的屬性、詳細(xì)描述、評(píng)價(jià)、賣家信息等等,這個(gè)頁(yè)面的每天展示次數(shù)在30億以上。同樣的道理,如果你做一個(gè)網(wǎng)站每天有10個(gè)人訪問(wèn),你絲毫感覺(jué)不到服務(wù)器的壓力,但是30億,要解決的問(wèn)題就多了去了。
首先,這些請(qǐng)求不能直接壓到數(shù)據(jù)庫(kù)上,任何單機(jī)或分布式的數(shù)據(jù)庫(kù),承受30億每天的壓力,都將崩潰到完全沒(méi)有幸福感,這種情況下要用到的技術(shù)就是大規(guī)模的分布式緩存,所有的賣家信息、評(píng)價(jià)信息、商品描述都是從緩存里面來(lái)取到的,甚至更加極致的一點(diǎn)“商品的瀏覽量”這個(gè)信息,每打開(kāi)頁(yè)面一次都要刷新,你猜能夠從緩存里面來(lái)取嗎?淘寶做到了,整個(gè)商品的詳情都在緩存里面。
- 商品圖片
一個(gè)商品有5個(gè)圖片,商品描述里面有更多圖片,你猜淘寶有多少?gòu)垐D片要存儲(chǔ)?100億以上。這么多圖片要是在你的硬盤里面,你怎么去查找其中的一張?要是你的同學(xué)想拷貝你的圖片,你需要他準(zhǔn)備多少塊硬盤?你需要配置多少大的帶寬?你們的網(wǎng)卡是否能夠承受?你需要多長(zhǎng)時(shí)間拷貝給他?這樣的規(guī)模,很不幸市面上已經(jīng)沒(méi)有任何商業(yè)的解決方案,最終必須自己來(lái)開(kāi)發(fā)一套存儲(chǔ)系統(tǒng),如果你聽(tīng)說(shuō)過(guò)google的GFS,淘寶跟他類似,叫TFS。順便說(shuō)一下,騰訊也有這樣的一套,也叫TFS。
- 廣告系統(tǒng)
淘寶上有很多廣告,什么,你不知道?那說(shuō)明淘寶的廣告做的還不錯(cuò),居然很多人不認(rèn)為它是廣告,賣家怎么出價(jià)去買淘寶的廣告位?廣告怎么展示?怎么查看廣告效果?這又是一套算法精奇的系統(tǒng)。
- BOSS系統(tǒng)
淘寶的工作人員怎么去管理這么龐大的一個(gè)系統(tǒng),例如某時(shí)刻突然宣布某位作家的作品全部從淘寶消失,從數(shù)據(jù)庫(kù)到搜索引擎到廣告系統(tǒng),里面的相關(guān)數(shù)據(jù)在幾分鐘內(nèi)全部消失,這又需要一個(gè)牛叉的后臺(tái)支撐系統(tǒng)。
- 運(yùn)維體系
支持這么龐大的一個(gè)網(wǎng)站,你猜需要多少臺(tái)服務(wù)器?幾千臺(tái)?那是零頭。這么多服務(wù)器,上面部署什么操作系統(tǒng),操作系統(tǒng)的內(nèi)核能否優(yōu)化?Java虛擬機(jī)能否優(yōu)化?通信模塊有沒(méi)有榨取性能的空間?軟件怎么部署上去?出了問(wèn)題怎么回滾?你裝過(guò)操作系統(tǒng)吧,優(yōu)化過(guò)吧,被360坑過(guò)沒(méi),崩潰過(guò)沒(méi)?這里面又有很多門道。
除了上面提到的這些,還有很多很多需要做的技術(shù),比如網(wǎng)站安全等等,當(dāng)然并不是這些東西有多么高不可攀,任何復(fù)雜的龐大的東西都是從小到大做起來(lái)的,里面需要牛叉到不行的大犇,也需要充滿好奇心的菜鳥(niǎo)。
當(dāng)用戶、數(shù)據(jù)和系統(tǒng)規(guī)模上到一個(gè)程度之后,所有曾經(jīng)可以忽視的問(wèn)題都會(huì)變得必須用從來(lái)不可想象的精力和技術(shù)去解決。問(wèn)題規(guī)模大到一定級(jí)別,任何微小的改進(jìn)都能帶來(lái)巨大的回報(bào)。但是這樣的改進(jìn)往往不是那么容易做到,所以需要大量頂尖高手來(lái)開(kāi)發(fā)。






















