看起來(lái)不是很復雜的網(wǎng)站,卻必要頂尖高手來(lái)開(kāi)發(fā)?
阿里巴巴員工 2 萬(wàn),百度技術(shù)人員超過(guò)6000,京東也有三四千攻城獅。
子柳:
就拿淘寶來(lái)說(shuō)說(shuō),當作給新人一些科普。
▼先說(shuō)你看到的頁(yè)面上,最緊張的幾個(gè):
【搜索商品】這個(gè)功能,假如你有幾千條商品,完全可以用select * from tableXX where title like %XX%如許的操作來(lái)搞定。但是——當你有10000000000(一百億)條商品的時(shí)候,任何一個(gè)數據庫都無(wú)法存放了,請問(wèn)你怎么搜索?這里必要用到分布式的數據存儲方案,關(guān)注公眾號:程序員大咖,另外這個(gè)搜索也不可能直接從數據庫里來(lái)取數據,必然要用到搜索引擎(簡(jiǎn)單來(lái)說(shuō)搜索引擎更快)。好,能搜出商品了,是否大功告成可以啵一個(gè)了呢?早著(zhù)呢,誰(shuí)家的商品出如今第一頁(yè)?這里必要用到巨復雜的排序算法。要是再根據你的購買(mǎi)舉動(dòng)做一些個(gè)性化的保舉——這夠一幫牛叉的算法工程師奮斗終生了。
【商品詳情】就是搜索完畢,看到你感愛(ài)好的,點(diǎn)擊查看商品的頁(yè)面,這個(gè)頁(yè)面有商品的屬性、細致描述、評價(jià)、賣(mài)家信息等等,這個(gè)頁(yè)面的天天展示次數在 30 億以上,同樣的道理,假如你做一個(gè)網(wǎng)站天天有 10 小我訪(fǎng)問(wèn),你涓滴感覺(jué)不到服務(wù)器的壓力,但是 30 億,要解決的題目就多了去了。首先,這些請求不能直接壓到數據庫上,任何單機或分布式的數據庫,承受 30 億天天的壓力,都將崩潰到完全沒(méi)有幸福感,這種情況下要用到的技術(shù)就是大規模的分布式緩存,所有的賣(mài)家信息、評價(jià)信息、商品描述都是從緩存里面來(lái)取到的,甚至更加極致的一點(diǎn)“商品的欣賞量”這個(gè)信息,每打開(kāi)頁(yè)面一次都要刷新,你猜能夠從緩存里面來(lái)取嗎?淘寶做到了,整個(gè)商品的詳情都在緩存里面。
【商品圖片】一個(gè)商品有 5 個(gè)圖片,商品描述里面有更多圖片,你猜淘寶有多少張圖片要存儲? 100 億以上。這么多圖片要是在你的硬盤(pán)里面,你怎么去查找其中的一張?要是你的同窗想拷貝你的圖片,你必要他預備多少塊硬盤(pán)?你必要配置多少大的帶寬?你們的網(wǎng)卡是否能夠承受?你必要多長(cháng)時(shí)間拷貝給他?如許的規模,很不幸面上已經(jīng)沒(méi)有任何商業(yè)的解決方案,最終我們必須本身來(lái)開(kāi)發(fā)一套存儲體系,假如你聽(tīng)說(shuō)過(guò)google的GFS,我們跟他類(lèi)似,叫TFS。順便說(shuō)一下,騰訊也有如許的一套,也叫TFS。
【廣告體系】淘寶上有許多廣告,什么,你不知道?那說(shuō)明我們的廣告做的還不錯,居然許多人不認為它是廣告,賣(mài)家怎么出價(jià)去買(mǎi)淘寶的廣告位?廣告怎么展示?怎么查看廣告結果?這又是一套算法精奇的體系。
【BOSS體系】淘寶的工作人員怎么去管理這么重大的一個(gè)體系,例如某時(shí)刻忽然公布某位作家的作品悉數從淘寶消散,從數據庫到搜索引擎到廣告體系,里面的相干數據在幾分鐘內悉數消散,這又必要一個(gè)牛叉的后臺支持體系。
【運維系統】支撐這么重大的一個(gè)網(wǎng)站,你猜必要多少臺服務(wù)器?幾千臺?那是零頭。這么多服務(wù)器,上面部署什么操作體系,操作體系的內核能否優(yōu)化?Java假造機能否優(yōu)化?通訊模塊有沒(méi)有壓迫性能的空間?軟件怎么部署上去?出了題目怎么回滾?你裝過(guò)操作體系吧,優(yōu)化過(guò)吧,被 360 坑過(guò)沒(méi),崩潰過(guò)沒(méi)?這里面又有許多門(mén)道。
不再多寫(xiě)了,除了上面提到的這些,還有許多許多必要做的技術(shù),當然并不是這些東西有多么高不可攀,任何復雜的重大的東西都是從小到大做起來(lái)的,里面必要牛叉到不行的大犇,也必要充滿(mǎn)好奇心的菜鳥(niǎo),最后這一句,你當我是別有效心好了。
蔡正海 :
剛看了一篇很故意思的文章,講的很清楚——《你剛才在淘寶上買(mǎi)了一件東西》
你發(fā)現快要過(guò)年了,于是想給你的女同伙買(mǎi)一件毛衣,你打開(kāi)了http://www.taobao.com。這時(shí)你的欣賞器首先查詢(xún)DNS服務(wù)器,將http://www.taobao.com轉換成ip地址。不過(guò)首先你會(huì )發(fā)現,你在不同的地區或者不同的網(wǎng)絡(luò )(電信、聯(lián)通、移動(dòng))的情況下,轉換后的IP地址很可能是不一樣的,這首先涉及到負載均衡的第一步,通過(guò)DNS解析域名時(shí)將你的訪(fǎng)問(wèn)分配到不同的入口,同時(shí)盡可能保證你所訪(fǎng)問(wèn)的入口是所有入口中可能較快的一個(gè) (這和后文的CDN不一樣)。
你通過(guò)這個(gè)入口成功的訪(fǎng)問(wèn)了http://www.taobao.com的現實(shí)的入口IP地址。這時(shí)你產(chǎn)生了一個(gè)PV,即Page View,頁(yè)面訪(fǎng)問(wèn)。每日每個(gè)網(wǎng)站的總PV量是形容一個(gè)網(wǎng)站規模的緊張指標。淘寶網(wǎng)全網(wǎng)在平日(非促銷(xiāo)期間)的PV也許是16- 25 億之間。同時(shí)作為一個(gè)自力的用戶(hù),你這次訪(fǎng)問(wèn)淘寶網(wǎng)的所有頁(yè)面,均算作一個(gè)UV(Unique Visitor用戶(hù)訪(fǎng)問(wèn))。最近污名昭著(zhù)的http://12306.cn的日PV量最岑嶺在 10 億左右,而UV量卻遠小于淘寶網(wǎng)十余倍,這其中的緣故原由我信賴(lài)大家都會(huì )知道。
由于統一時(shí)刻訪(fǎng)問(wèn)http://www.taobao.com的人數過(guò)于偉大,所以即便是生成淘寶首頁(yè)頁(yè)面的服務(wù)器,也不可能僅有一臺。僅用于生成http://www.taobao.com首頁(yè)的服務(wù)器就可能有成百上千臺,那么你的一次訪(fǎng)問(wèn)時(shí)生成頁(yè)面給你看的義務(wù)便會(huì )被分配給其中一臺服務(wù)器完成。這個(gè)過(guò)程要保證公正、公平、平均(暨這成百上千臺服務(wù)器每臺負擔的用戶(hù)數要差不多),這一很復雜的過(guò)程是由幾個(gè)體系配合完成,其中最關(guān)鍵的便是LVS(Linux Virtual Server),世界上最流行的負載均衡體系之一,正是由目前在淘寶網(wǎng)供職的章文嵩博士開(kāi)發(fā)的。
經(jīng)過(guò)一系列復雜的邏輯運算和數據處理,用于這次給你看的淘寶網(wǎng)首頁(yè)的HTML內容便生成成功了。對web前端稍微有點(diǎn)常識的童鞋都應該知道,下一步欣賞器會(huì )去加載頁(yè)面中用到的css、js、圖片、腳本和資源文件。但是可能相對較少的同窗才會(huì )知道,你的欣賞器在統一個(gè)域名下并發(fā)加載的資源數量是有限定的,例如IE6- 7 是兩個(gè),IE 8 是 6 個(gè),Chrome各版本不大一樣,一樣平常是4- 6 個(gè)。我剛剛看了一下,我訪(fǎng)問(wèn)淘寶網(wǎng)首頁(yè)必要加載 126 個(gè)資源,那么如此小的并發(fā)連接數天然會(huì )加載很久。所曩昔端開(kāi)發(fā)人員每每會(huì )將上述這些資源文件分布在好多個(gè)域名下,變相的繞過(guò)欣賞器的這個(gè)限定,同時(shí)也為下文的CDN工作做預備。
據不可靠新聞,在雙十一當天岑嶺,淘寶的訪(fǎng)問(wèn)流量最頂峰達到871GB/S。這個(gè)數字意味著(zhù)必要 178 萬(wàn)個(gè)4Mb帶寬的家庭寬帶才能負擔的起,也完全有能力拖垮一個(gè)中小城的悉數互聯(lián)網(wǎng)帶寬。那么顯然,這些訪(fǎng)問(wèn)流量不可能集中在一路。并且大家都知道,不同地區不同網(wǎng)絡(luò )(電信、聯(lián)通等)之間互訪(fǎng)會(huì )特別很是緩慢,但是你卻發(fā)現很少發(fā)現淘寶網(wǎng)訪(fǎng)問(wèn)緩慢。這便是CDN(Content Delivery Network),即內容分發(fā)網(wǎng)絡(luò )的作用。淘寶在全國各地建立了數十上百個(gè)CDN節點(diǎn),行使一些手段保證你訪(fǎng)問(wèn)的(這里重要指js、css、圖片等)地方是離你最近的CDN節點(diǎn),如許便保證了大流量分散在各地訪(fǎng)問(wèn)的加速節點(diǎn)上。
這便出現了一個(gè)題目,那就是假若一個(gè)賣(mài)家發(fā)布了一個(gè)新的寶貝,上傳了幾張新的寶貝圖片,那么淘寶網(wǎng)如何保證全國各地的CDN節點(diǎn)中都會(huì )同步的存在這幾張圖片供用戶(hù)使用呢?這里邊就涉及到了大量的內容分發(fā)與同步的相干技術(shù)。淘寶開(kāi)發(fā)了分布式文件體系TFS(Taobao File System)來(lái)處理這類(lèi)題目。
好了,這時(shí)你終于加載完了淘寶首頁(yè),那么你風(fēng)俗性的在首頁(yè)搜索框中輸入了'毛衣'二字并敲回車(chē),這時(shí)你又產(chǎn)生了一個(gè)PV,然后,淘寶網(wǎng)的主搜索體系便開(kāi)始為你服務(wù)了。它首先對你輸入的內容基于一個(gè)分詞庫進(jìn)行分詞操作。眾所周知,英文是以詞為單位的,詞和詞之間是靠空格隔開(kāi),而中文是以字為單位,句子中所有的字連起來(lái)才能描述一個(gè)意思。例如,英詞句子I am a student,用中文則為:“我是一個(gè)門(mén)生”。計算機可以很簡(jiǎn)單通過(guò)空格知道student是一個(gè)單詞,但是不能很容易曉暢“學(xué)”、“生”兩個(gè)字合起來(lái)才透露表現一個(gè)詞。把中文的漢字序列切分成故意義的詞,就是中文分詞,有些人也稱(chēng)為切詞。我是一個(gè)門(mén)生,分詞的效果是:我 是 一個(gè)門(mén)生。
進(jìn)行分詞之后,還必要根據你輸入的搜索詞進(jìn)行你的購物意圖分析。用戶(hù)進(jìn)行搜索時(shí)常常有如下幾類(lèi)意圖:
(1)欣賞型:沒(méi)有明確的購物對象和意圖,邊看邊買(mǎi),用戶(hù)比較隨意和感性。Query例如:” 2016 年 10 大香水排行”,” 2016 年流行毛衣”, “zippo有多少種類(lèi)?”;
(2)查詢(xún)型:有肯定的購物意圖,表現在對屬性的要求上。Query例如:”適合老人用的手機”,” 500 元 手表”;
(3)對比型:已經(jīng)縮小了購物意圖,詳細到了某幾個(gè)產(chǎn)品。Query例如:”諾基亞E71 E63″,”akg k450 px200″;
(4)確定型:已經(jīng)做了基本決定,重點(diǎn)考察某個(gè)對象。Query例如:”諾基亞N97″,”IBM T60″。通過(guò)對你的購物意圖的分析,主搜索會(huì )呈現出完全不同的效果來(lái)。
之后的數個(gè)步驟后,主搜索體系便根據上述以及更多復雜的條件列出了搜索效果,這統統是由一千多臺搜索服務(wù)器完成。然后你開(kāi)始一一點(diǎn)擊欣賞搜索出的寶貝。你開(kāi)始查看寶貝詳情頁(yè)面。經(jīng)常網(wǎng)購的親們會(huì )發(fā)現,當你買(mǎi)過(guò)了一個(gè)寶貝之后,即便是商家多次修改了寶貝詳情頁(yè),你仍然能夠通過(guò)‘已買(mǎi)到的寶貝’查看當時(shí)的快照。這是為了防止商家對在商品詳情中承諾過(guò)的東西賴(lài)賬不認。那么顯然,對于每年數十上百億比交易的商品詳情快照進(jìn)行保存和快速調用不是一個(gè)簡(jiǎn)單的事情。這 其中又涉及到數套體系的共同協(xié)作,其中較為緊張的是Tair,淘寶自行研發(fā)的分布式KV存儲方案。
然后無(wú)論你是否真正進(jìn)行了交易,你的這些訪(fǎng)問(wèn)舉動(dòng)便忠厚的被體系記錄下來(lái),用于后續的營(yíng)業(yè)邏輯和數據分析。這些記錄中訪(fǎng)問(wèn)日志記錄便是最緊張的記錄之一, 但是前邊我們得知,這些訪(fǎng)問(wèn)是分布在各個(gè)地區許多不同的服務(wù)器上的,并且因為用戶(hù)浩繁,這些日志記錄都特別很是重大,達到TB級別特別很是正常。那么為了快速及時(shí) 傳輸同步這些日志數據,淘寶研發(fā)了TimeTunnel,用于進(jìn)行實(shí)時(shí)的數據傳輸,交給后端體系進(jìn)行計算報表等操作。
你的欣賞數據、交易數據以及其它許多許多的數據記錄均會(huì )被保留下來(lái)。
使得淘寶存儲的歷史數據易如反掌的便達到了十數甚至更多個(gè)PB(1PB=1024TB=1048576GB)。如此偉大的數據量經(jīng)過(guò)淘寶體系1: 120 的極限壓縮存儲在淘寶的數據倉庫中。并且通過(guò)一個(gè)叫做云梯的,由 2000 多臺服務(wù)器組成的超大規模數據體系賡續的進(jìn)行分析和發(fā)掘。
從這些數據中淘寶能夠知道小到你是誰(shuí),你喜好什么,你的孩子幾歲了,你是否在談戀愛(ài),喜好玩魔獸世界的人喜好什么樣的飲料等,大到各行各業(yè)的零售情況、各類(lèi)商品的興衰滅亡等等海量的信息。
說(shuō)了這么多,其實(shí)也只是敘述了淘寶上正在運行的成千上萬(wàn)個(gè)體系中的寥寥幾個(gè)。即便是你僅僅訪(fǎng)問(wèn)一次淘寶的首頁(yè),所涉及到的技術(shù)和體系規模都是你完全無(wú)法想 象的,是淘寶 2000 多名頂級的工程師們的心血結晶,其中甚至包括長(cháng)江學(xué)者、國家科學(xué)技術(shù)最高獎得主等浩繁大牛。同樣,百度、騰訊等的營(yíng)業(yè)體系也絕不比淘寶簡(jiǎn)單。你必要知道的是,你天天使用的互聯(lián)網(wǎng)產(chǎn)品,看似簡(jiǎn)單易用,背后卻凝聚著(zhù)難以想象的伶俐與勞動(dòng)。
下一篇::百度點(diǎn)擊算法SEO快速排名原理
最新文章
- 1微型B2C站點(diǎn)的建立
《微型B2C站點(diǎn)的建立》對于大多數企業(yè)來(lái)說(shuō),......
- 2百度優(yōu)化之判斷關(guān)鍵詞是否犯
??關(guān)鍵詞堆砌(keywordstuffing)在網(wǎng)頁(yè)中大......
- 3百度搜索推廣匹配方式精簡(jiǎn)成
百度搜索推廣匹配方式精簡(jiǎn)成3+1匹配模式了這......
- 4百度付費推廣常見(jiàn)問(wèn)題和解決
一、推廣賬戶(hù)問(wèn)題Q1.排名不錯,但是點(diǎn)擊率極......
- 5百度競價(jià)推廣出現競價(jià)賬戶(hù)有
競價(jià)推廣怎么做?sem競價(jià)推廣成為企業(yè)歡迎的......