你刚才淘宝上买衣服---具体分析技术工艺(淘宝页面显示处理的页面)
聲明:文章和保存之前看到在計算機網絡中的文件,有沒有辦法找到原文地址。在該聲明。為了上網project教師致敬。
你找到新的一年。所以,我想給你女朋友買一件毛衣,你打開www.taobao.com。這時你的瀏覽器首先查詢DNSserver。將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的人數過于巨大,所以即便是生成淘寶首頁頁面的server,也不可能僅有一臺。
僅用于生成www.taobao.com首頁的server就可能有成百上千臺,那么你的一次訪問時生成頁面給你看的任務便會被分配給當中一臺server完畢。
這個過程要保證公正、公平、平均(暨這成百上千臺server每臺負擔的用戶數要差點兒相同),這一非常復雜的過程是由幾個系統配合完畢,當中最關鍵的便是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。用中文則為:“我是一個學生”。計算機可以非常easy通過空格知道student是一個單詞,可是不能非常容易明白“學”、“生”兩個字合起來才表示一個詞。
把中文的漢字序列切分成有意義的詞,就是中文分詞。有些人也稱為切詞。我是一個學生。分詞的結果是:我 是 一個 學生。
進行分詞之后,還須要依據你輸入的搜索詞進行你的購物意圖分析。用戶進行搜索時經常有例如以下幾類意圖:(1)瀏覽型:沒有明白的購物對象和意圖,邊看邊買,用戶比較任意和感性。Query比如:”2010年10大香水排行”,”2010年流行毛衣”, “zippo有多少種類?”;(2)查詢型:有一定的購物意圖。體如今對屬性的要求上。Query比如:”適合老人用的手機”。”500元 手表”;(3)對照型:已經縮小了購物意圖,詳細到了某幾個產品。Query比如:”諾基亞E71 E63″,”akg k450 px200″。(4)確定型:已經做了基本決定,重點考察某個對象。Query比如:”諾基亞N97″。”IBM T60″。通過對你的購物意圖的分析,主搜索會呈現出全然不同的結果來。
之后的數個步驟后,主搜索系統便依據上述以及很多其它復雜的條件列出了搜索結果,這一切是由一千多臺搜索server完畢。然后你開始逐一點擊瀏覽搜索出的寶貝。你開始查看寶貝詳情頁面。經常網購的親們會發現。當你買過了一個寶貝之后。即便是商家多次改動了寶貝詳情頁,你仍然可以通過‘已買到的寶貝’查看當時的快照。這是為了防止商家對在商品詳情中承諾過的東西賴賬不認。那么顯然。對于每年數十上百億比交易的商品詳情快照進行保存和高速調用不是一個簡單的事情。這當中又涉及到數套系統的共同協作,當中較為重要的是Tair,淘寶自行研發的分布式KV存儲方案。
然后不管你是否真正進行了交易,你的這些訪問行為便忠實的被系統記錄下來。用于興許的業務邏輯和數據分析。這些記錄中訪問日志記錄便是最重要的記錄之中的一個。 可是前邊我們得知,這些訪問是分布在各個地區非常多不同的server上的。而且由于用戶眾多,這些日志記錄都非常龐大,達到TB級別非常正常。那么為了高速及時 傳輸同步這些日志數據。淘寶研發了TimeTunnel。用于進行實時的傳輸數據,交給后端系統進行計算報表等操作。
你的瀏覽數據、交易數據以及其它非常多非常多的數據記錄均會被保留下來。使得淘寶存儲的歷史數據輕而易舉的便達到了十數甚至很多其它個 PB(1PB=1024TB=1048576GB)。如此巨大的數據量經過淘寶系統1:120的極限壓縮存儲在淘寶的數據倉庫中。
而且通過一個叫做云梯的,由2000多臺server組成的超大規模數據系統不斷的進行分析和挖掘。
從這些數據中淘寶可以知道小到你是誰。你喜歡什么。你的孩子幾歲了,你是否在談戀愛,喜歡玩魔獸世界的人喜歡什么樣的飲料等,大到各行各業的零售情況、各類商品的興衰消亡等等海量的信息。
說了這么多,事實上也不過敘述了淘寶上正在執行的成千上萬個系統中的寥寥幾個。
即便是你只訪問一次淘寶的首頁,所涉及到的技術和系統規模都是你全然無法想象的。是淘寶2000多名頂級的project師們的心血結晶。當中甚至包含長江學者、國家科學技術最高獎得主等眾多大牛。
相同,百度、騰訊等的業務系統也絕不比淘寶簡單。你須要知道的是,你每天使用的互聯網產品。看似簡單易用,背后卻凝聚著難以想象的智慧與勞動。
轉載于:https://www.cnblogs.com/bhlsheji/p/5048733.html
總結
以上是生活随笔為你收集整理的你刚才淘宝上买衣服---具体分析技术工艺(淘宝页面显示处理的页面)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结对项目——Subway
- 下一篇: 外围功能电路控制 LET′S TRY“嵌