自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

《淘寶技術(shù)這十年》的分析與總結(jié):創(chuàng)造技術(shù)里程碑

開發(fā) 項目管理 前端
最近有幸,在學(xué)校的圖書館借到了子柳先生的《淘寶技術(shù)這十年》,拜讀一番,感慨萬分。將書中內(nèi)容加上自己的想法與諸君分享,畢竟未經(jīng)人事看法粗淺,希望能得到園子里前輩們的指點~

 延伸閱讀:《淘寶技術(shù)這十年》專題

一、淘寶的核心技術(shù)(國內(nèi)乃至國際的Top,這還是2011年的數(shù)據(jù))

  • 擁有全國***的分布式Hadoop集群(云梯,2000左右節(jié)點,24000核CPU,48000GB內(nèi)存,40PB存儲容量)
  • 全國分布80+CDN節(jié)點,能夠自動找尋最近的節(jié)點提供服務(wù),支持流量超過800Gbps,足以拖垮一個城市的流量
  • 不遜于百度的搜索引擎,對數(shù)十億商品進(jìn)行搜索,全球***的電商平臺
  • ***的負(fù)載均衡系統(tǒng),***的分布式系統(tǒng),***的互聯(lián)網(wǎng)思想,功能多樣運(yùn)行極其穩(wěn)定
  • 豐富的生態(tài)產(chǎn)業(yè)以及先進(jìn)的數(shù)據(jù)挖掘技術(shù)
  • ......很多很多

二、淘寶網(wǎng)的誕生

馬總在2003年4月7日秘密叫來阿里巴巴的十位員工,來到杭州一個隱秘的毛坯房,要求他們在一個月左右的時間內(nèi)做出一個C2C網(wǎng)站。

結(jié)果當(dāng)然還是直接買的快,一個基于LAMP架構(gòu)的網(wǎng)站,原名是PHPAuction,老美開發(fā)的一個拍賣網(wǎng)站。當(dāng)然必須要做修改才能用。(作為一個曾經(jīng)用老美開發(fā)的前端頁面開發(fā)自己博客的同學(xué),確實感覺用別人寫的比較方便偷懶-_-,不過我確信虛竹、三豐、多隆等前輩是有足夠?qū)嵙﹂_發(fā)自己網(wǎng)站的——還是馬總催的緊)

當(dāng)時財大氣粗的eBay正在中國耀武揚(yáng)威,加上SARS肆虐,可能大家對網(wǎng)購產(chǎn)生了新的認(rèn)識。而淘寶刻意保持低調(diào),甚至連阿里的員工都不知道這是他們自己公司的產(chǎn)品。

淘寶的員工積極回答著用戶的問題,早起貪黑,鍛煉身體的方法就是倒立。

淘寶的功能也在不斷的完善著,發(fā)布、管理、搜索、詳情、購買等等,服務(wù)器也變成了三臺。因為數(shù)據(jù)量大了,淘寶的搜索很慢(使用LIKE匹配...),多隆前輩把阿里巴巴的搜索引擎iSearch搬了過來。

當(dāng)時MySQL的默認(rèn)存儲引擎MyISAM會導(dǎo)致讀寫鎖等待時間過長等等大量問題,所以意外還是很多的。

2003年底,淘寶注冊用戶23萬,PV 31萬/day,半年成交額3371萬。

三、淘寶的更新

很顯然MySQL無法撐得起如此大的訪問量,數(shù)據(jù)庫瓶頸出現(xiàn)了。幸好阿里的DBA隊伍足夠強(qiáng)大,他們使用Oracle替代了MySQL。

Oracle那時就已經(jīng)有了強(qiáng)大的并發(fā)性訪問設(shè)計——連接池,從連接池取連接的耗費(fèi)比單獨建立連接少很多。但是PHP當(dāng)時并沒有官方提供支持語言連接池特性,于是多隆前輩用Google(不會是Baidu)搜到了一個開源的SQL Relay,于是數(shù)據(jù)庫軟件方面的瓶頸暫時解決了。

但是硬件容量不夠了,阿里買了NAS(后來因為延遲嚴(yán)重原因買了EMC的SAN低端存儲),加上Oracle高性能RAC,硬件容量也暫時沒問題了。

開源的東西固然好,但是大膽使用也是一次嘗試的過程,SQL Relay會頻繁的導(dǎo)致死鎖問題,導(dǎo)致工程師不得不定期進(jìn)行重啟服務(wù),從書中的描述可以看出,淘寶的工程師們真的非常辛苦。

淘寶網(wǎng)不會止步于僅僅為賣家和買家提供一個交易的網(wǎng)站而已,還需要建立一個完善的第三方體系,來保證賣家和買家之間的交易是安全的,于是支付寶誕生了。比較麻煩的是,當(dāng)時雖有很多銀行開放了網(wǎng)銀接口,但是甚至不能保證付錢后就會扣款成功,還是需要工程師們辛苦的一板一眼去對賬......

淘寶為了便于用戶的交流,開發(fā)了一個IM軟件——旺旺,不僅給買賣雙方使用,阿里內(nèi)部也使用旺旺交流。

四、***個里程碑

因為SQL Relay的問題實在過于嚴(yán)重,2004年于是淘寶終于做出了跨時代的決策——使用Java重寫網(wǎng)站(鼓掌~~~)。

沒錯,淘寶請了Sun的高級工程師來幫忙做Java架構(gòu)。那么他們是如何做到修改編程語言而不改變網(wǎng)站使用呢——模塊化替換,今天寫好了A模塊,另開一個新域名,將連接指向該模塊,同時別的模塊不變,等到全部模塊完成的時候,原域名放棄。

使用的框架:淘寶的架構(gòu)師在Jakarta Turbine的基礎(chǔ)上開發(fā)了自己的MVC框架——WebX。而Sun公司堅持使用EJB作為控制層(估計當(dāng)時只有他們才能玩貫EJB),加上使用iBatis作為持久層,一個可擴(kuò)展且高效的Java EE應(yīng)用誕生了。BYW,支付寶也是Sun的工程師用同樣的架構(gòu)設(shè)計的。

送走Sun的大牛們之后,阿里的數(shù)據(jù)存儲又遇到了瓶頸,于是忍痛買了一臺IBM小型機(jī)(我猜至少是***別的.......),也就有了IOE(IBM + Oracle + EMC)這樣的傳說。

2004年底,淘寶注冊用戶400萬,PV 4000萬/day,全網(wǎng)成交額10個億。

五、再接再厲

Oracle也有處理上限,當(dāng)數(shù)量的級別是“億”的時候,就不是一個Oracle服務(wù)器支撐的起的了。DBA們把數(shù)據(jù)分到了兩個數(shù)據(jù)庫中,通過ID的***位決定查詢哪一個數(shù)據(jù)。比如,‘0’至‘7’放在A數(shù)據(jù)庫,‘8’至‘f’放在B數(shù)據(jù)庫,通用信息放在C數(shù)據(jù)庫。但是如何既查詢'3'開頭又查詢'e'開頭的數(shù)據(jù)呢?一個數(shù)據(jù)庫路由框架DBRoute由架構(gòu)師行癲編寫,統(tǒng)一處理合并問題而對上層透明。

Spring誕生了,早聞Spring框架在Web應(yīng)用不可或缺,而在淘寶網(wǎng),Spring也達(dá)到了Rod Johnson設(shè)計它的目的——替代EJB。

2005年底,淘寶注冊用戶1390萬,PV 8931萬/day,商品數(shù)目1663萬個。

說實話我真的好佩服,這么大的訪問量都能如此堅挺,但是,考慮到未來的發(fā)展,這樣的設(shè)施架構(gòu)只是勉強(qiáng)可以應(yīng)付現(xiàn)在的要求。于是,CDN技術(shù)派上用場了,一開始使用商用的ChinaCache,后來使用章文嵩博士搭建低耗能CDN網(wǎng)絡(luò),淘寶網(wǎng)的性能越來越好了。

2006年底,淘寶注冊用戶3000萬,PV 15000萬/day,商品數(shù)目5000萬,全網(wǎng)成交額169億元。

六、創(chuàng)造技術(shù)

為了考慮交易的公平性,淘寶增加了交易快照功能,將當(dāng)前交易網(wǎng)頁以圖片的形式保存下來,淘寶的交易量如此之大,帶來了一個問題——碎片圖片過多,2010年,淘寶網(wǎng)的后端上保存著286億張圖片。

淘寶在2007年之前,使用NetApp的商用存儲系統(tǒng),但是仍然不夠應(yīng)付迅速增長的趨勢。同年Google公布了GFS的設(shè)計思想,參照它的思想,淘寶也開發(fā)了自己的文件系統(tǒng)——TFS。至于這個文件系統(tǒng)的具體原理書上給的并不詳細(xì)(應(yīng)該是我看不懂-_-),不過可以大概可以了解是專門為大量的圖片設(shè)計的,從每個用戶1張圖片到TFS上線后5張再到1GB的圖片空間,這些都得益于TFS集群的文件存儲系統(tǒng)以及大量的圖片服務(wù)器。淘寶使用實時生成縮率圖,全局負(fù)載均衡以及一級和二級緩存來保證圖片的訪問優(yōu)化與高效訪問。

淘寶的服務(wù)器軟件使用Tengine,一個被優(yōu)化過的nginx模塊。

淘寶也做過失敗的產(chǎn)品,不是因為技術(shù)原因而是市場原因。首先是“團(tuán)購”,失敗在于人心叵測。再次是“我的淘寶”,使用了風(fēng)靡全球的AJAX的技術(shù),但是做的過于AJAX了,可能是太不容易上手了(馬總親口說的),還有“招財進(jìn)寶”(被競爭對手認(rèn)為是破壞了“免費(fèi)”的承諾而大肆宣揚(yáng))。

記錄商品的訪問量,使用傳統(tǒng)的數(shù)據(jù)庫I/O實在過于影響效率,所以淘寶使用了緩沖的技術(shù),先是使用ESI(Edge Side Includes),解決了片段緩沖問題。因為有些大店鋪訪問量過大,頻繁的I/O實在得不償失,于是多隆前輩寫出了TBstore,可以緩存大量的數(shù)據(jù),核心思想是使用Hash算法快速尋找。其核心是基于Berkeley DB,一種類內(nèi)存數(shù)據(jù)庫,導(dǎo)致的問題是內(nèi)存數(shù)據(jù)量大了還是會刷到磁盤中,因此性能并不是那么的好。

后來,淘寶分離出了UIC(User Information Center),供所有模塊調(diào)用。多隆前輩再次為其編寫出了TDBM,完全是基于內(nèi)存的數(shù)據(jù)緩存(參考了memcached)。再然后,淘寶將TBstore和TDBM合并,寫出了Tair,一個基于Key-Value的分布式緩存數(shù)據(jù)系統(tǒng)。然后升級了自己的iSearch系統(tǒng)。

2007年底,淘寶注冊用戶5000萬,PV 25000萬/day,商品數(shù)目1個億,全網(wǎng)成交額433億元。

七、更多的技術(shù)

一個電子商務(wù)平臺不可缺少的細(xì)節(jié)——商品類目的處理。因為商品的類目實在過于龐大,因此如何根據(jù)類目劃分商品成為了難題。機(jī)智的一燈前輩說,這些屬性可以當(dāng)做標(biāo)簽,直接“貼”在商品上(應(yīng)該是這樣的吧)。

2008年,淘寶將支付寶單獨分離出來。其中交易的底層業(yè)務(wù)叫交易中心TC(Trade Center),涉及訂單之類的原子操作。交易的上層業(yè)務(wù)叫做交易管理TM(Trade Manager),不涉及對物流的操作。

于是,應(yīng)運(yùn)而生的,第二個堪稱里程碑的項目——系統(tǒng)拆分 誕生了。這個正是我們在阿里圓桌會議上HR所說一位元老級員工做的——“給一架高速飛行的飛機(jī)換發(fā)動機(jī)”這么驚險的重構(gòu)任務(wù)。這些組件分割難度非常之大,以至于那張復(fù)雜的邏輯圖我實在看不懂......總之,淘寶中間件誕生了。

HSF(高性能服務(wù)框架):核心,外號好舒服。請參見作者的博文http://www.blogjava.net/BlueDavy/archive/2008/01/24/177533.html

Notify(消息中間件):淘寶自主開發(fā)的消息隊列產(chǎn)品。支撐了10億+的消息通知。

TDDL(分布式數(shù)據(jù)訪問層):優(yōu)化了DBRoute,在JDBC和DB之間隔了一層,負(fù)責(zé)數(shù)據(jù)庫的優(yōu)化工作。

Tbsession:因為Session保存在服務(wù)器中,但是用戶可能會被動的頻繁的切換服務(wù)器,淘寶的設(shè)計思路是將Session信息保存在Cookie中,***使用Tair來保存。

阿里的開放平臺也相當(dāng)有歷史,有興趣的可以參觀參觀http://open.taobao.com/index.htm

八、總結(jié)

當(dāng)你處于業(yè)界中流時,你可以向老大學(xué)習(xí),等當(dāng)你成為業(yè)界老大之后,你就需要不斷超越自己,用自己的力量來改變整個行業(yè),乃至整個世界。無論是華為,還是阿里,當(dāng)成為業(yè)內(nèi)的Top時,責(zé)任反而更加重大。

一直覺得自己想著隨大流,但是卻又心有不甘。如今有機(jī)會能進(jìn)入全中國***的互聯(lián)網(wǎng)網(wǎng)站,一直為自己這些年的付出感到榮幸,同時不斷勉勵自己,你需要變得更強(qiáng)才能融入這個集體。

任重而道遠(yuǎn),縱望阿里淘寶這些年的發(fā)展之路,那些默默無聞卻勇于探索鉆研的人是最可愛的,遇到問題永遠(yuǎn)不服輸,總會有辦法去解決的。正如阿里圓桌會議HR所說的“在座的各位都是愛折騰的人”,我承認(rèn)自己受之有愧,自己的身體一直不能保證毫無顧忌的拼斗,自己雖然每天堅持都去跑步,底子還是不行,想要成為一名武林中人,更漫長的路需要我堅持的走下去,意志力,我可以有。

堅持學(xué)習(xí),鉆研學(xué)習(xí),實踐學(xué)習(xí)。希望自己能堅持這三點信條。

相當(dāng)佩服馬總的思想理念和為人處事,也相當(dāng)佩服那么多實力不凡而又忠心耿耿的部下,他們對得起他們的身價。

子柳兄的《淘寶技術(shù)這十年》到此總結(jié)完畢,我相信淘寶的光輝路程的還有很長,我的學(xué)問之路,也必將一直走下去。

責(zé)任編輯:林師授 來源: 內(nèi)向爆裂的博客
相關(guān)推薦

2013-07-15 10:52:52

IT技術(shù)周刊

2009-03-18 13:10:59

多核服務(wù)器MIPS

2017-08-01 10:15:56

數(shù)據(jù)分析大數(shù)據(jù)

2011-08-30 11:04:06

里程碑Linux

2016-09-29 09:46:41

JavascriptWeb前端

2011-09-10 19:23:22

2011-09-09 13:42:16

2015-06-19 07:50:47

2011-09-26 18:33:40

2022-02-15 13:00:29

人工智能人臉識別機(jī)器學(xué)習(xí)

2013-01-18 10:09:10

互聯(lián)網(wǎng)網(wǎng)絡(luò)發(fā)展撥號上網(wǎng)

2021-02-04 14:31:30

RISC-V架構(gòu)GPU

2021-09-15 17:50:10

網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)威脅

2015-03-11 10:41:16

2010-04-09 15:24:55

2015-12-21 16:12:06

紅帽CloudForms混合云

2011-05-25 10:19:17

2024-12-04 10:39:00

Linux內(nèi)核技術(shù)性

2015-07-28 11:29:59

電商亞馬遜沃爾瑪

2017-12-26 00:06:13

5G無線技術(shù)網(wǎng)絡(luò)
點贊
收藏

51CTO技術(shù)棧公眾號