最近,我有幸讀了《劉先生&質(zhì)數(shù)》;s淘寶科技十年,帶著巨大的情感去讀。我會把書里的內(nèi)容和自己的想法分享給你。畢竟希望得到園內(nèi)前輩的指點(diǎn)~
一、淘寶的核心技術(shù)(國內(nèi)甚至國際Top,這還是2011年的數(shù)據(jù))
擁有全國最大的分布式Hadoop集群(云梯,2000左右節(jié)點(diǎn),24000核CPU,48000GB內(nèi)存,40PB存儲容量)全國分布80+CDN節(jié)點(diǎn),能夠自動(dòng)找尋最近的節(jié)點(diǎn)提供服務(wù),支持流量超過800Gbps,足以拖垮一個(gè)城市的流量不遜于百度的搜索引擎,對數(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ù)......很多很多二、淘寶的誕生
2003年4月7日,馬總偷偷把阿里巴巴的十名員工叫到杭州的一個(gè)秘密的空白房間,要求他們在一個(gè)月左右的時(shí)間內(nèi)創(chuàng)建一個(gè)C2C網(wǎng)站。
當(dāng)然結(jié)果是趕緊買。一個(gè)基于LAMP架構(gòu)的網(wǎng)站,原名PHPAuction,是老梅開發(fā)的拍賣網(wǎng)站。當(dāng)然,必須經(jīng)過修改才能使用。(作為一個(gè)曾經(jīng)用老梅開發(fā)的前端頁面開發(fā)博客的同學(xué),我真的覺得懶的和別人一起寫更方便-_-,但是我相信許諸、三豐、多隆等前輩有足夠的實(shí)力開發(fā)自己的網(wǎng)站——或者馬總督促。)
當(dāng)時(shí)財(cái)大氣粗的eBay正在中國炫耀實(shí)力。此外,非典肆虐,人們可能對網(wǎng)購有了新的認(rèn)識。淘寶故意低調(diào),連阿里的員工都不知道這是自己公司的產(chǎn)品。
淘寶員工積極回答用戶問題,早起貪得無厭,鍛煉方式就是倒立。
淘寶的功能在不斷完善,包括發(fā)布、管理、搜索、細(xì)節(jié)、購買等。,有三臺服務(wù)器。因?yàn)閿?shù)據(jù)量大,淘寶搜索慢(使用LIKE匹配...),多隆的前輩們把搜索引擎iSearch搬到了阿里巴巴。
當(dāng)時(shí)MySQL的默認(rèn)存儲引擎MyISAM造成了讀寫鎖等待時(shí)間長等很多問題,所以出現(xiàn)了很多事故。
2003年底,淘寶注冊用戶23萬,PV 31萬/天,半年?duì)I業(yè)額3371萬。
三、淘寶的更新
很明顯,MySQL無法支持這么大的訪問量,出現(xiàn)了數(shù)據(jù)庫瓶頸。好在阿里的DBA團(tuán)隊(duì)足夠強(qiáng)大,他們用的是Oracle而不是MySQL。
當(dāng)時(shí)的Oracle有一個(gè)強(qiáng)大的并發(fā)訪問設(shè)計(jì)——連接池,從連接池中獲取連接的成本比單獨(dú)建立連接的成本要小得多。然而,PHP當(dāng)時(shí)并沒有正式提供支持語言連接池的功能,所以多隆的前輩用谷歌(不是百度)搜索了一個(gè)開源的SQL Relay,暫時(shí)解決了數(shù)據(jù)庫軟件的瓶頸。
但是硬件容量不夠。阿里買了NAS(后來因?yàn)閲?yán)重延遲買了EMC的SAN低端存儲),加上甲骨文的高性能RAC,硬件容量暫時(shí)沒問題。
開源是好的,但是大膽使用也是一個(gè)嘗試的過程。SQL Relay會經(jīng)常導(dǎo)致死鎖問題,導(dǎo)致工程師不得不定期重啟服務(wù)。從書中的描述可以看出,淘寶工程師真的很辛苦。
淘寶不會僅僅停留在為買賣雙方提供一個(gè)交易網(wǎng)站,還需要建立完善的第三方系統(tǒng)來保證買賣雙方的交易安全,于是支付寶誕生了。更麻煩的是,當(dāng)時(shí)雖然很多銀行開通了網(wǎng)銀接口,但甚至不能保證支付后扣款成功,還需要工程師努力對賬......
淘寶開發(fā)了一款I(lǐng)M軟件——旺旺,不僅買家賣家都用,阿里也用它來交流。
第四,第一個(gè)里程碑
因?yàn)镾QL Relay的問題太嚴(yán)重,2004年淘寶終于做了一個(gè)跨時(shí)代的決定——用Java重寫網(wǎng)站(掌聲~ ~ ~)。
有,淘寶請了孫的高級工程師幫忙搭建Java架構(gòu)。那么他們?nèi)绾卧诓桓淖兙W(wǎng)站用途的情況下修改編程語言呢?模塊化更換。今天寫了模塊A,開了新域名。連接點(diǎn)指向該模塊,而其他模塊保持不變。當(dāng)所有模塊完成后,原域名被放棄。
使用的框架:淘寶架構(gòu)師開發(fā)了自己的MVC框架——基于雅加達(dá)渦輪的WebX。而Sun公司堅(jiān)持使用作為控制層(當(dāng)時(shí)估計(jì)只有他們可以玩),加上iBatis作為持久層,一個(gè)可擴(kuò)展高效的Java EE應(yīng)用就誕生了。和支付寶也是由同樣架構(gòu)的Sun工程師設(shè)計(jì)的。
送走孫的大牛后,阿里遇到了數(shù)據(jù)存儲的瓶頸,于是忍痛買了一臺IBM小型機(jī)(我猜至少是百萬級的...),還有一個(gè)類似IOE的傳說(IBM+Oracle+EMC)。
2004年底淘寶注冊用戶400萬,PV 4000萬/天,全網(wǎng)營業(yè)額10億。
第五,再接再厲
甲骨文也有處理上限。當(dāng)數(shù)量級別為“1億”時(shí),Oracle服務(wù)器無法支持。數(shù)據(jù)庫管理員將數(shù)據(jù)分成兩個(gè)數(shù)據(jù)庫,并根據(jù)標(biāo)識的第一位數(shù)字來決定查詢哪些數(shù)據(jù)。比如數(shù)據(jù)庫A中有‘0’到‘7’,數(shù)據(jù)庫B中有‘8’到‘f’,數(shù)據(jù)庫c中有一般信息,但是‘3’和‘e’開頭的數(shù)據(jù)怎么查詢呢?數(shù)據(jù)庫路由框架DBRoute由架構(gòu)師編寫,它統(tǒng)一處理合并問題,并且對上層透明。
Spring誕生了,眾所周知,Spring框架在Web應(yīng)用中是不可或缺的。在淘寶上,Spring達(dá)到了Rod Johnson設(shè)計(jì)的目的——取代EJB。
截至2005年底,淘寶注冊用戶1390萬,PV 8931萬/天,產(chǎn)品1663萬。
說實(shí)話,我真的很佩服這么大數(shù)量的游客能這么強(qiáng),但是考慮到未來的發(fā)展,這個(gè)設(shè)施結(jié)構(gòu)勉強(qiáng)能滿足目前的要求。于是,CDN技術(shù)應(yīng)運(yùn)而生。起初,它使用商業(yè)緩存。后來,它利用張博士建立了一個(gè)低能CDN網(wǎng)絡(luò)。淘寶的表現(xiàn)越來越好。
截至2006年底,淘寶注冊用戶3000萬,PV 15000萬/天,商品5000萬,全網(wǎng)營業(yè)額169億元。
不及物動(dòng)詞創(chuàng)造技術(shù)
為了考慮交易的公平性,淘寶增加了交易快照功能,以圖片的形式保存了當(dāng)前的交易網(wǎng)頁。淘寶的交易量太大,帶來了一個(gè)問題——碎片圖片太多。2010年,淘寶后端存了286億張圖片。
淘寶在2007年之前使用的是NetApp的商用存儲系統(tǒng),但仍然不足以應(yīng)對快速增長的趨勢。同年,谷歌公布了GFS的設(shè)計(jì)思路,淘寶也開發(fā)了自己的文件系統(tǒng)——TFS。至于這個(gè)文件系統(tǒng)的具體原理,書中沒有詳細(xì)介紹(我看不懂-_-),但我們大概可以理解為它是專門為大量圖片設(shè)計(jì)的,從每個(gè)用戶1張圖片到TFS上線后5張圖片,再到1GB圖片空,都得益于TFS集群的文件存儲系統(tǒng)和大量圖片服務(wù)器。淘寶使用實(shí)時(shí)生成縮小地圖、全局負(fù)載平衡以及一級和二級緩存來確保最佳和高效的圖像訪問。
淘寶的服務(wù)器軟件使用Tengine,一個(gè)優(yōu)化的nginx模塊。
淘寶也做過失敗的產(chǎn)品,不是因?yàn)榧夹g(shù)原因,而是市場原因。首先是“團(tuán)購”,失敗在于人的惡意。還是那句話,就是“我的淘寶”,用的是風(fēng)靡全球的AJAX技術(shù),但是太AJAX了,可能上手太難(馬總自己說的),還有“壓歲錢”(被競爭對手廣泛宣傳為違背“免費(fèi)”承諾)。
傳統(tǒng)的數(shù)據(jù)庫I/O對記錄商品訪問量的效率影響太大,所以淘寶使用緩沖技術(shù),首先使用ESI(Edge Side Includes)解決碎片緩沖的問題。因?yàn)橛行┐笊痰暝L問量太大,頻繁的I/O不值得損失,多隆的前輩寫了TBstore,可以緩存大量數(shù)據(jù)。核心思想是使用Hash算法快速查找。它的核心是基于伯克利數(shù)據(jù)庫(Berkeley DB),一種類似內(nèi)存的數(shù)據(jù)庫,導(dǎo)致內(nèi)存數(shù)據(jù)量大或者會被刷到磁盤,所以性能不太好。
后來淘寶把UIC(用戶信息中心)分出來給所有模塊打電話。多隆的前輩們又一次為它寫了TDBM,這是完全基于內(nèi)存的數(shù)據(jù)緩存(參考memcached)。然后淘寶把TBstore和TDBM合并,寫了Tair,一個(gè)基于Key-Value的分布式緩存數(shù)據(jù)系統(tǒng)。然后升級了它的iSearch系統(tǒng)。
截至2007年底,淘寶注冊用戶5000萬,PV 25000萬/天,商品數(shù)量1億,全網(wǎng)營業(yè)額433億元。
七、更多技術(shù)
電子商務(wù)平臺不可缺少的一個(gè)細(xì)節(jié)——商品類別的處理。由于商品的類別太大,如何按類別劃分商品成為一個(gè)難題。伊登的機(jī)智前輩說,這些屬性可以作為標(biāo)簽,直接“粘貼”在商品上(應(yīng)該是這樣的)。
2008年,淘寶分離支付寶。交易的底層業(yè)務(wù)稱為TC(貿(mào)易中心),涉及訂單等原子操作。交易的上層業(yè)務(wù)叫TM(Trade Manager (TM),不涉及物流的運(yùn)營。
于是,第二個(gè)里程碑式的項(xiàng)目——系統(tǒng)拆分誕生了。這正是人力資源在阿里圓桌會議上所說的一位資深員工所做的——“更換高速飛機(jī)的發(fā)動(dòng)機(jī)”。這些組件很難劃分,我無法理解復(fù)雜的邏輯圖...總之,淘寶中間件誕生了。
HSF(高績效服務(wù)框架):核心,外號好舒服。見作者博文http://www . blog Java . net/blue big/archive/2008/01/24/177533 . html。
Notify(消息中間件):淘寶自主開發(fā)的消息隊(duì)列產(chǎn)品。支持10億+的新聞通知。
TDDL(分布式數(shù)據(jù)訪問層):優(yōu)化數(shù)據(jù)庫路由,將JDBC和數(shù)據(jù)庫分開,負(fù)責(zé)數(shù)據(jù)庫的優(yōu)化。
TbSession:由于Session保存在服務(wù)器中,但是用戶可能會被動(dòng)頻繁地切換服務(wù)器,淘寶的設(shè)計(jì)思路是將Session信息保存在Cookie中,最后用Tair保存。
阿里的開放平臺也很有歷史意義,有興趣的可以去http://open.taobao.com/index.htm看看
八.摘要
當(dāng)你處于行業(yè)中間的時(shí)候,你可以向老板學(xué)習(xí)。當(dāng)你成為行業(yè)老大,你需要不斷超越自己,用自己的力量去改變整個(gè)行業(yè),甚至整個(gè)世界。不管是華為還是阿里,當(dāng)他們成為行業(yè)頂尖的時(shí)候,他們的責(zé)任就更重要了。
總覺得自己在想著隨大流,但又不甘心?,F(xiàn)在我有機(jī)會訪問中國最好的互聯(lián)網(wǎng)網(wǎng)站。我一直為自己這些年的努力感到榮幸,也不斷鼓勵(lì)自己。你需要變得更強(qiáng)才能融入這個(gè)群體。
任仲任重道遠(yuǎn)??v觀阿里淘寶這幾年的發(fā)展,默默無聞但敢于探索和研究的才是最可愛的。如果遇到問題,他們永遠(yuǎn)不會認(rèn)輸,總會有辦法解決的。就像阿里圓桌的HR說的“在座各位都是一擲千金”,我承認(rèn)我有負(fù)罪感,我的身體不能保證一直毫無顧忌的戰(zhàn)斗。雖然每天堅(jiān)持跑步,但是基礎(chǔ)還是不好。如果我想成為武林中人,我需要走很長的路。我可以有意志力。
堅(jiān)持學(xué)習(xí),努力學(xué)習(xí),實(shí)踐學(xué)習(xí)。希望能堅(jiān)持這三條信條。
我佩服馬總的思想和為人處事,佩服這么多有權(quán)有勢,忠心耿耿,配得上自己社會地位的下屬。
現(xiàn)在子柳雄的淘寶技術(shù)十年總結(jié)下來了,我相信淘寶還有很長的路要走,我的學(xué)習(xí)之路一定會一直走下去。
原文:https://www.cnblogs.com/gaozhenxi/p/4023012.html
1.《淘寶十年 淘寶十年技術(shù)路》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《淘寶十年 淘寶十年技術(shù)路》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/caijing/678636.html