你剛才在淘寶上買了一件東西

你發現快要過年了,于是想給你的女朋友買一件毛衣,你打開了www.taobao.com。這時你的瀏覽器首先查詢DNS服務器,將www.taobao.com轉換成ip地址。不過首先你會發現,你在不同的地區或者不同的網絡(電信、聯通、移動)的情況下,轉換后的IP地址很可能是 不一樣的,這首先涉及到負載均衡的第一步,通過DNS解析域名時將你的訪問分配到不同的入口,同時盡可能保證你所訪問的入口是所有入口中可能較快的一個 (這和后文的CDN不一樣)。
  你通過這個入口成功的訪問了www.taobao.com的實際的入口IP地址。這時你產生了一個PV,即Page View,頁面訪問。每日每個網站的總PV量是形容一個網站規模的重要指標。淘寶網全網在平日(非促銷期間)的PV大概是16-25億之間。同時作為一個獨立的用戶,你這次訪問淘寶網的所有頁面,均算作一個UV(Unique Visitor用戶訪問)。最近臭名昭著的12306.cn的日PV量最高峰在10億左右,而UV量卻遠小于淘寶網十余倍,這其中的原因我相信大家都會知道。
  因為同一時刻訪問www.taobao.com的人數過于巨大,所以即便是生成淘寶首頁頁面的服務器,也不可能僅有一臺。僅用于生成www.taobao.com首頁的服務器就可能有成百上千臺,那么你的一次訪問時生成頁面給你看的任務便會被分配給其中一臺服務器完成。這個過程要保證公正、公平、平均(暨這成百上千臺服務器每臺負擔的用戶數要差不多),這一很復雜的過程是由幾個系統配合完成,其中最關鍵的便是LVS(Linux Virtual Server),世界上最流行的負載均衡系統之一,正是由目前在淘寶網供職的章文嵩博士開發的。
  經過一系列復雜的邏輯運算和數據處理,用于這次給你看的淘寶網首頁的HTML內容便生成成功了。對web前端稍微有點常識的童鞋都應該知道,下一步瀏覽器會去加載頁面中用到的css、js、圖片、腳本和資源文件。但是可能相對較少的同學才會知道,你的瀏覽器在同一個域名下并發加載的資源數量是有限制的,例如IE6-7是兩個,IE8是6個,Chrome各版本不大一樣,一般是4-6個。我剛剛看了一下,我訪問淘寶網首頁需要加載126個資源,那么如此小的并發連接數自然會加載很久。所以前端開發人員往往會將上述這些資源文件分布在好多個域名下,變相的繞過瀏覽器的這個限制,同時也為下文的CDN工作做準備。
  據不可靠消息,在雙十一當天高峰,淘寶的訪問流量最巔峰達到871GB/S。這個數字意味著需要178萬個4Mb帶寬的家庭寬帶才能負擔的起,也完全有能力拖垮一個中小城市的全部互聯網帶寬。那么顯然,這些訪問流量不可能集中在一起。并且大家都知道,不同地區不同網絡(電信、聯通等)之間互訪會非常緩慢,但是你卻發現很少發現淘寶網訪問緩慢。這便是CDN(Content Delivery Network),即內容分發網絡的作用。淘寶在全國各地建立了數十上百個CDN節點,利用一些手段保證你訪問的(這里主要指js、css、圖片等)地方是離你最近的CDN節點,這樣便保證了大流量分散在各地訪問的加速節點上。
  這便出現了一個問題,那就是假若一個賣家發布了一個新的寶貝,上傳了幾張新的寶貝圖片,那么淘寶網如何保證全國各地的CDN節點中都會同步的存在這幾張圖片供用戶使用呢?這里邊就涉及到了大量的內容分發與同步的相關技術。淘寶開發了分布式文件系統TFS(Taobao File System)來處理這類問題。
  好了,這時你終于加載完了淘寶首頁,那么你習慣性的在首頁搜索框中輸入了'毛衣'二字并敲回車,這時你又產生了一個PV,然后,淘寶網的主搜索系統便開始為你服務了。它首先對你輸入的內容基于一個分詞庫進行分詞操作。眾所周知,英文是以詞為單位的,詞和詞之間是靠空格隔開,而中文是以字為單位,句子中所有的字連起來才能描述一個意思。例如,英文句子I am a student,用中文則為:“我是一個學生”。計算機可以很簡單通過空格知道student是一個單詞,但是不能很容易明白“學”、“生”兩個字合起來才表示一個詞。把中文的漢字序列切分成有意義的詞,就是中文分詞,有些人也稱為切詞。我是一個學生,分詞的結果是:我 是 一個 學生。
  進行分詞之后,還需要根據你輸入的搜索詞進行你的購物意圖分析。用戶進行搜索時常常有如下幾類意圖:

(1)瀏覽型:沒有明確的購物對象和意圖,邊看邊買,用戶比較隨意和感性。Query例如:”2010年10大香水排行”,”2010年流行毛衣”, “zippo有多少種類?”;
(2)查詢型:有一定的購物意圖,體現在對屬性的要求上。Query例如:”適合老人用的手機”,”500元 手表”;
(3)對比型:已經縮小了購物意圖,具體到了某幾個產品。Query例如:”諾基亞E71 E63″,”akg k450 px200″;
(4)確定型:已經做了基本決定,重點考察某個對象。Query例如:”諾基亞N97″,”IBM T60″。通過對你的購物意圖的分析,主搜索會呈現出完全不同的結果來。

之后的數個步驟后,主搜索系統便根據上述以及更多復雜的條件列出了搜索結果,這一切是由一千多臺搜索服務器完成。然后你開始逐一點擊瀏覽搜索出的寶貝。你開始查看寶貝詳情頁面。經常網購的親們會發現,當你買過了一個寶貝之后,即便是商家多次修改了寶貝詳情頁,你仍然能夠通過‘已買到的寶貝’查看當時的快照。這是為了防止商家對在商品詳情中承諾過的東西賴賬不認。那么顯然,對于每年數十上百億比交易的商品詳情快照進行保存和快速調用不是一個簡單的事情。這 其中又涉及到數套系統的共同協作,其中較為重要的是Tair,淘寶自行研發的分布式KV存儲方案。
  然后無論你是否真正進行了交易,你的這些訪問行為便忠實的被系統記錄下來,用于后續的業務邏輯和數據分析。這些記錄中訪問日志記錄便是最重要的記錄之一, 但是前邊我們得知,這些訪問是分布在各個地區很多不同的服務器上的,并且由于用戶眾多,這些日志記錄都非常龐大,達到TB級別非常正常。那么為了快速及時 傳輸同步這些日志數據,淘寶研發了TimeTunnel,用于進行實時的數據傳輸,交給后端系統進行計算報表等操作。
  你的瀏覽數據、交易數據以及其它很多很多的數據記錄均會被保留下來。使得淘寶存儲的歷史數據輕而易舉的便達到了十數甚至更多個 PB(1PB=1024TB=1048576GB)。如此巨大的數據量經過淘寶系統1:120的極限壓縮存儲在淘寶的數據倉庫中。并且通過一個叫做云梯的,由2000多臺服務器組成的超大規模數據系統不斷的進行分析和挖掘。
  從這些數據中淘寶能夠知道小到你是誰,你喜歡什么,你的孩子幾歲了,你是否在談戀愛,喜歡玩魔獸世界的人喜歡什么樣的飲料等,大到各行各業的零售情況、各類商品的興衰消亡等等海量的信息。
  說了這么多,其實也只是敘述了淘寶上正在運行的成千上萬個系統中的寥寥幾個。即便是你僅僅訪問一次淘寶的首頁,所涉及到的技術和系統規模都是你完全無法想 象的,是淘寶2000多名頂級的工程師們的心血結晶,其中甚至包括長江學者、國家科學技術最高獎得主等眾多大牛。同樣,百度、騰訊等的業務系統也絕不比淘寶簡單。你需要知道的是,你每天使用的互聯網產品,看似簡單易用,背后卻凝聚著難以想象的智慧與勞動。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容