? ? ? 從文章中看到很多需要學(xué)習(xí)的知識,不僅僅包括數(shù)據(jù)庫、計算機網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)等基礎(chǔ)課程;還根據(jù)時代的技術(shù)變遷講述了當時最新的編程技術(shù)及應(yīng)用,如數(shù)據(jù)挖掘、Java\Oracle、搜索引擎分詞排序、分布式、大數(shù)據(jù)GFS、海量文件處理等,這些知識對我都非常有幫助;同時也根據(jù)淘寶網(wǎng)發(fā)展歷程不斷講述了它遇到的問題及解決方法。從最初的通過購買更高端的系統(tǒng)設(shè)備到最好的設(shè)備也不能滿足淘寶網(wǎng)海量數(shù)據(jù)尤其是圖片數(shù)據(jù)的存儲需求,最后自己創(chuàng)造屬于自己的針對海量小文件存儲的文件系統(tǒng)。? ? ? ? 很有價值又很好玩的一本書,可以全面的了解淘寶的技術(shù)升級路線。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 從工程師的角度講述了淘寶的成長歷程,還有幾次技術(shù)變革的前因后果。
1.淘寶的技術(shù)升級
淘寶建立之初對外是以個人網(wǎng)站作宣傳,第一版一個月上線,采用LAMP架構(gòu)。是修改了國外的一個拍賣系統(tǒng)源碼,主要對數(shù)據(jù)庫進行分庫,讀寫分離(存儲容量增加,備份,安全性增加,讀寫效率提升—寫要比讀更加消耗資源,分開后互不干擾);
最初只有一臺服務(wù)器,隨著訪問量的增加,將數(shù)據(jù)庫服務(wù)器獨立出來,同時,增加一臺Email服務(wù)器;商品檢索功能最初的實現(xiàn)就是使用sql中的like搜索,對數(shù)據(jù)庫資源消耗嚴重,于是使用阿里巴巴的iSearch模塊替換like方式;
2003 年底,MySQL升級,采用 Oracle進行技術(shù)替代,Oracle的性能和并發(fā)訪問能力
強大,關(guān)鍵性的設(shè)計——連接池;
2004 年上半年,淘寶決定更換開發(fā)語言,將PHP更改為JAVA,特意請來SUN公司的技術(shù)人員,開始采用EJB系統(tǒng),打造了一個阿里巴巴的MVC框架WebX,易于擴展,方
便組件化開發(fā),它的頁面模板支持JSP和Velocity等,持久層支持ibatis和hibernate等,控制層可以用EJB和Spring(Spring是后來才有的) ;
在接下來的幾年,圍繞著提高容量、提高性能、節(jié)約成本,淘寶逐漸完成了對數(shù)據(jù)分庫、放棄EJB、引入Spring、加入緩存、加入CDN等工作。并且開始創(chuàng)造自己的技術(shù);
07年之前,圖片存儲使用的是NetAPP的文件存儲系統(tǒng),但未對小文件存儲進行有針對的優(yōu)化 ,且擴容成本高昂,網(wǎng)絡(luò)連接數(shù)經(jīng)常達到極限;在這種背景下,淘寶研發(fā)了TFS(淘寶文件系統(tǒng));TFS文件系統(tǒng)在核心設(shè)計上改變,傳統(tǒng)的集群系統(tǒng)中元數(shù)據(jù)只有1份,由管理節(jié)點容易成為瓶頸。TFS在設(shè)計規(guī)劃上考慮在圖片的保存文件名上賦予一些元數(shù)據(jù)信息,實際的元數(shù)據(jù)上,保存的信息很少,元數(shù)據(jù)結(jié)構(gòu)非常簡單。整個系統(tǒng)完全拋棄了傳統(tǒng)的目錄樹結(jié)構(gòu)。2007年6月,TFS正式上線運營。