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



-
線上商城app開(kāi)發(fā)有哪些功能
熱門產(chǎn)品展示:在線上商城app首頁(yè),用戶可以瀏覽各種熱門產(chǎn)品信息,方便用戶深入了解平臺(tái)功能和行業(yè)信息,為用戶購(gòu)買產(chǎn)品提供一定的參考依據(jù),揚(yáng)州網(wǎng)站建設(shè)給人們的生活帶來(lái)一定的便利。 產(chǎn)品分類展示:為了滿足用戶的瀏覽需求,APP會(huì)根據(jù)產(chǎn)品...
-
高端揚(yáng)州網(wǎng)站建設(shè)的幾個(gè)必備要素
當(dāng)下做營(yíng)銷型網(wǎng)站建設(shè)已經(jīng)成為了企業(yè)的標(biāo)配,每個(gè)企業(yè)都希望自己的網(wǎng)站能夠做的非常高端,能夠帶來(lái)非常可觀的效果。然而對(duì)于究竟何為高端的網(wǎng)站卻沒(méi)有一個(gè)準(zhǔn)確的定位,大部分人認(rèn)為,華麗的頁(yè)面,酷炫的動(dòng)態(tài)效果就稱之為高端網(wǎng)站。乍一看也是那么回事,但是深究之下,卻忽略了一個(gè)...
-
網(wǎng)站建設(shè)選擇服務(wù)器的重要性
服務(wù)器就好比我們的電腦主機(jī),幾百塊的主機(jī)也有,上萬(wàn)的主機(jī)也有。幾百的主機(jī)可能打開(kāi)個(gè)網(wǎng)頁(yè)都卡的不要不要的。同樣的道理假如我們企業(yè)的官網(wǎng)用了劣質(zhì)的服務(wù)器,受到影響的不僅僅是網(wǎng)站的訪問(wèn)速度,同時(shí)還會(huì)牽連用戶體驗(yàn),如果訪問(wèn)量稍微大一點(diǎn)甚至可能會(huì)導(dǎo)致網(wǎng)站直...
-
如何做出一個(gè)“高大上”的網(wǎng)頁(yè)設(shè)計(jì)
現(xiàn)在隨著互聯(lián)網(wǎng)發(fā)展越來(lái)越快,網(wǎng)站對(duì)于企業(yè)來(lái)說(shuō)也越來(lái)越重要。網(wǎng)站代表著企業(yè)在人們心中的形象,網(wǎng)站設(shè)計(jì)直接影響著企業(yè)在網(wǎng)絡(luò)推廣中的效果。一個(gè)差的網(wǎng)站對(duì)企業(yè)在網(wǎng)上擴(kuò)大知名度和推廣都是相當(dāng)不利的。很多中小企業(yè)在網(wǎng)站建設(shè)的過(guò)程中對(duì)整個(gè)網(wǎng)站的設(shè)...
-
如何選擇SSL證書服務(wù)品牌?
目前主要有三種品牌SSL證書的,詳細(xì)如下: 1 Symantec Symantec是全球大的信息安全廠商和服務(wù)商,權(quán)威的數(shù)字證書頒發(fā)機(jī)構(gòu),為企業(yè)、個(gè)人用戶和服務(wù)供應(yīng)商提供廣泛的內(nèi)容和網(wǎng)絡(luò)安全解決方案,全球500強(qiáng)中有93%選擇了 Ver...