淘寶複雜在哪裏? 淘寶系的勝利

http://www.nowamagic.net/librarys/veda/detail/2347 淘寶帝國

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

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

  • 一個讓人瞠目的結果:若是將百元大鈔摞起來,191億元可高達1.9萬米,至關於世界最高建築迪拜塔(828米)的 23 倍,用經常使用點鈔機須要耗費 133 天。
  • 另外一個讓人瞠目的結果則是:「光棍節」當日天貓涌入了2.13億網民。

爲了阻擊天貓光棍節促銷,競爭對手紛紛出擊,京東推出了沙漠風暴行動,蘇寧推出了「3天 3 夜超級 0 元購」,造成「圍攻天貓」之勢。天貓最終成爲贏家,儘管京東、易購還沒有公佈結果,但 191 億元如一座高峯,競爭對手只能仰望。緩存

從技術看淘寶

此次奇蹟的背後,是淘寶成千上萬頂尖工程師天天努力的結果,那麼他們天天都在努力什麼?淘寶的複雜在哪裏?爲何這麼恐怖的訪問量,淘寶仍是能撐得住?安全

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

  1. 搜索商品

    這個功能,若是你有幾千條商品,徹底能夠用select * from tableXX where title like %XX%這樣的操做來搞定。可是——當你有10,000,000,000(一百億)條商品的時候,任何一個數據庫都沒法存放了,請問你怎麼搜索?運維

    這裏須要用到分佈式的數據存儲方案,另外這個搜索也不可能直接從數據庫裏來取數據,必然要用到搜索引擎(簡單來講搜索引擎更快)。好,能搜出商品了,是否大功告成能夠啵一個了呢?早着呢,誰家的商品出如今第一頁?這裏須要用到巨複雜的排序算法。要是再根據你的購買行爲作一些個性化的推薦——這夠一幫牛叉的算法工程師奮鬥終生了。分佈式

  2. 商品詳情

    就是搜索完畢,看到你感興趣的,點擊查看商品的頁面,這個頁面有商品的屬性、詳細描述、評價、賣家信息等等,這個頁面的天天展現次數在30億以上。一樣的道理,若是你作一個網站天天有10我的訪問,你絲毫感受不到服務器的壓力,可是30億,要解決的問題就多了去了。性能

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

  3. 商品圖片

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

  4. 廣告系統

    淘寶上有不少廣告,什麼,你不知道?那說明淘寶的廣告作的還不錯,竟然不少人不認爲它是廣告,賣家怎麼出價去買淘寶的廣告位?廣告怎麼展現?怎麼查看廣告效果?這又是一套算法精奇的系統。

  5. BOSS系統

    淘寶的工做人員怎麼去管理這麼龐大的一個系統,例如某時刻忽然宣佈某位做家的做品所有從淘寶消失,從數據庫到搜索引擎到廣告系統,裏面的相關數據在幾分鐘內所有消失,這又須要一個牛叉的後臺支撐系統。

  6. 運維體系

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

除了上面提到的這些,還有不少不少須要作的技術,好比網站安全等等,固然並非這些東西有多麼遙不可及,任何複雜的龐大的東西都是從小到大作起來的,裏面須要牛叉到不行的大犇,也須要充滿好奇心的菜鳥。

當用戶、數據和系統規模上到一個程度以後,全部曾經能夠忽視的問題都會變得必須用歷來不可想象的精力和技術去解決。問題規模大到必定級別,任何微小的改進都能帶來巨大的回報。可是這樣的改進每每不是那麼容易作到,因此須要大量頂尖高手來開發。

若是有興趣能夠再讀讀這個:你在淘寶買件東西背後的複雜技術