淘寶復雜在哪里?

淘寶系的勝利
服務器君一共花費了222.462 ms進行了7次數據庫查詢,努力地為您提供了這個頁面。
試試閱讀模式?希望聽取您的建議

淘寶帝國

雙 11無疑是淘寶系(淘寶+天貓)的獨舞。

阿里集團 11 月 12 日凌晨確認,11.11購物狂歡節的支付寶總銷售額達到 191 億元,是去年的三倍多,其中僅天貓就達成了 132 億元,淘寶則完成了 59 億元。

  • 一個讓人瞠目的結果:如果將百元大鈔摞起來,191億元可高達1.9萬米,相當于世界最高建筑迪拜塔(828米)的 23 倍,用常用點鈔機需要耗費 133 天。
  • 另一個讓人瞠目的結果則是:“光棍節”當日天貓涌入了2.13億網民。

為了阻擊天貓光棍節促銷,競爭對手紛紛出擊,京東推出了沙漠風暴行動,蘇寧推出了“3天 3 夜超級 0 元購”,形成“圍攻天貓”之勢。天貓最終成為贏家,盡管京東、易購尚未公布結果,但 191 億元如一座高峰,競爭對手只能仰望。

從技術看淘寶

這次奇跡的背后,是淘寶成千上萬頂尖工程師每天努力的結果,那么他們每天都在努力什么?淘寶的復雜在哪里?為什么這么恐怖的訪問量,淘寶還是能撐得住?

先說你看到的頁面上,最重要的幾個:

  1. 搜索商品
  2. 這個功能,如果你有幾千條商品,完全可以用select * from tableXX where title like %XX%這樣的操作來搞定。但是——當你有10,000,000,000(一百億)條商品的時候,任何一個數據庫都無法存放了,請問你怎么搜索?

    這里需要用到分布式的數據存儲方案,另外這個搜索也不可能直接從數據庫里來取數據,必然要用到搜索引擎(簡單來說搜索引擎更快)。好,能搜出商品了,是否大功告成可以啵一個了呢?早著呢,誰家的商品出現在第一頁?這里需要用到巨復雜的排序算法。要是再根據你的購買行為做一些個性化的推薦——這夠一幫牛叉的算法工程師奮斗終生了。

  3. 商品詳情
  4. 就是搜索完畢,看到你感興趣的,點擊查看商品的頁面,這個頁面有商品的屬性、詳細描述、評價、賣家信息等等,這個頁面的每天展示次數在30億以上。同樣的道理,如果你做一個網站每天有10個人訪問,你絲毫感覺不到服務器的壓力,但是30億,要解決的問題就多了去了。

    首先,這些請求不能直接壓到數據庫上,任何單機或分布式的數據庫,承受30億每天的壓力,都將崩潰到完全沒有幸福感,這種情況下要用到的技術就是大規模的分布式緩存,所有的賣家信息、評價信息、商品描述都是從緩存里面來取到的,甚至更加極致的一點“商品的瀏覽量”這個信息,每打開頁面一次都要刷新,你猜能夠從緩存里面來取嗎?淘寶做到了,整個商品的詳情都在緩存里面。

  5. 商品圖片
  6. 一個商品有5個圖片,商品描述里面有更多圖片,你猜淘寶有多少張圖片要存儲?100億以上。這么多圖片要是在你的硬盤里面,你怎么去查找其中的一張?要是你的同學想拷貝你的圖片,你需要他準備多少塊硬盤?你需要配置多少大的帶寬?你們的網卡是否能夠承受?你需要多長時間拷貝給他?這樣的規模,很不幸市面上已經沒有任何商業的解決方案,最終必須自己來開發一套存儲系統,如果你聽說過google的GFS,淘寶跟他類似,叫TFS。順便說一下,騰訊也有這樣的一套,也叫TFS。

  7. 廣告系統
  8. 淘寶上有很多廣告,什么,你不知道?那說明淘寶的廣告做的還不錯,居然很多人不認為它是廣告,賣家怎么出價去買淘寶的廣告位?廣告怎么展示?怎么查看廣告效果?這又是一套算法精奇的系統。

  9. BOSS系統
  10. 淘寶的工作人員怎么去管理這么龐大的一個系統,例如某時刻突然宣布某位作家的作品全部從淘寶消失,從數據庫到搜索引擎到廣告系統,里面的相關數據在幾分鐘內全部消失,這又需要一個牛叉的后臺支撐系統。

  11. 運維體系
  12. 支持這么龐大的一個網站,你猜需要多少臺服務器?幾千臺?那是零頭。這么多服務器,上面部署什么操作系統,操作系統的內核能否優化?Java虛擬機能否優化?通信模塊有沒有榨取性能的空間?軟件怎么部署上去?出了問題怎么回滾?你裝過操作系統吧,優化過吧,被360坑過沒,崩潰過沒?這里面又有很多門道。

除了上面提到的這些,還有很多很多需要做的技術,比如網站安全等等,當然并不是這些東西有多么高不可攀,任何復雜的龐大的東西都是從小到大做起來的,里面需要牛叉到不行的大犇,也需要充滿好奇心的菜鳥。

當用戶、數據和系統規模上到一個程度之后,所有曾經可以忽視的問題都會變得必須用從來不可想象的精力和技術去解決。問題規模大到一定級別,任何微小的改進都能帶來巨大的回報。但是這樣的改進往往不是那么容易做到,所以需要大量頂尖高手來開發。

如果有興趣可以再讀讀這個:你在淘寶買件東西背后的復雜技術

本文地址:http://www.zqhthc.tw/librarys/veda/detail/2347,歡迎訪問原出處。

不打個分嗎?

轉載隨意,但請帶上本文地址:

http://www.zqhthc.tw/librarys/veda/detail/2347

如果你認為這篇文章值得更多人閱讀,歡迎使用下面的分享功能。
小提示:您可以按快捷鍵 Ctrl + D,或點此 加入收藏

大家都在看

閱讀一百本計算機著作吧,少年

很多人覺得自己技術進步很慢,學習效率低,我覺得一個重要原因是看的書少了。多少是多呢?起碼得看3、4、5、6米吧。給個具體的數量,那就100本書吧。很多人知識結構不好而且不系統,因為在特定領域有一個足夠量的知識量+足夠良好的知識結構,系統化以后就足以應對大量未曾遇到過的問題。

奉勸自學者:構建特定領域的知識結構體系的路徑中再也沒有比學習該專業的專業課程更好的了。如果我的知識結構體系足以囊括面試官的大部分甚至吞并他的知識結構體系的話,讀到他言語中的一個詞我們就已經知道他要表達什么,我們可以讓他坐“上位”畢竟他是面試官,但是在知識結構體系以及心理上我們就居高臨下。

所以,閱讀一百本計算機著作吧,少年!

《計算機程序的構造和解釋(原書第2版)》 艾伯森 (譯者), 裘宗燕 (譯者), 等 (譯者)

《計算機程序的構造和解釋》(原書第2版)1984年出版,成型于美國麻省理工學院(MIT)多年使用的一本教材,1996年修訂為第2版。在過去的二十多年里,《計算機程序的構造和解釋》(原書第2版)對于計算機科學的教育計劃產生了深刻的影響。第2版中大部分重要程序設計系統都重新修改并做過測試,包括各種解釋器和編譯器。作者根據其后十余年的教學實踐,還對其他許多細節做了相應的修改。《計算機程序的構造和解釋》(原書第2版)自出版以來,世界各地已有100多所院校采用《計算機程序的構造和解釋》(原書第2版)做教材,其中包括美國斯坦福大學、美國普林斯頓大學、英國牛津大學、日本東京大學等。

更多計算機寶庫...

英超直播吻球网