序:《淘寶技術這十年》這本書在加入阿里以前就讀過了,那時是以一種「仰視」的心態去讀這本書,對書中描述的技術十分着迷(雖然不是全懂,可是感受好厲害的樣子)。現在再回過頭重讀這本書,裏面每個技術要點,可能都是現在實際工做中會碰到的問題。因而我抱着從新梳理和整理的心態,再次閱讀這部「名著」。mysql
第0章:光棍節的狂歡web
1.《你剛纔在淘寶上買了一件東西》:打開域名=》查詢DNS(負載均衡)=》找到入口IP=》打開首頁(負載均衡LVS)=》多域名加載靜態資源(CDN)=》查看賣家發佈的商品(TFS存儲)=》查詢框模糊查詢(搜索服務器器)=>寶貝快照(tair)=》日誌傳輸(TimeTunnel)=>分佈式數據存儲(Haddoop)=》數據挖掘spring
2.不一樣階段的業務應用不一樣的技術,相互促進做用sql
第1章:我的網站數據庫
1.網站最開始的構架:LAMP(Linux+Apache+MySQL+PHP),開源、免費,購買現成系統(PHPAuction)改造緩存
2.買來系統之後,修改數據庫類型,增長後臺管理功能,把數據庫拆分,讀寫分離,有了備份,更安全、高效安全
第2章:我的網站的升級服務器
1.數據庫從mysql到oracle:效率的關鍵——鏈接池。找了一個PHP的鏈接池代理服務器SQL Relay。可是和mysql同樣,常常鎖死。session
第3章:企業級JAVA網站併發
1.脫胎換骨的升級——更換開發語言:一個模塊一個模塊漸進式的替換。新模塊使用臨時域名,灰度發佈替換
2.使用本身的MVC框架webx代替當時難用的struts1
3.初代的構架:webx+EJB+ibatis,另外包括搜索引擎(iSearch)和數據庫
4.iSearch原理簡單,可是難點在於高併發大數據量上,也是一門很深的技術
5.業務帶來的壓力更多的出如今數據和儲存上面,DB這塊一級級升級(硬件、軟件),最終到IOE
6.從IOE(IBM+ORACLE+EMC)到去IOE,也是業務發展所推進的,由於新業務,須要新技術
7.當ORACLE知足不了上億的查詢數據時,須要作分庫分表,系統須要一個DBRoute的框架合併數據庫操做
8.用spring替換掉了EJB,精簡了系統(軟件層面的優化)
9.爲了減小數據庫壓力,引入緩存和CDN,把頁面中各個部分(瀏覽量,頁面詳情,商品信息)分別放入不一樣的存儲中(數據庫,TFS,CDN,Tair)
10.淘寶2.1版本:數據分庫、放棄EJB、引入spring、加入緩存加入CDN等,提升了容量、性能、節約了成本
第4章:創造技術
1.在2.1版本,把商品管理和交易管理分割了,系統更合理,功能更人性化了,可是存儲成本上升了
2.TFS的原因:商業系統已經不能知足和適合淘寶業務,自主研發的投入收益比已經超過買/租模式了。自主開發的技術能針對業務作更好的優化,性能方便會比商業軟件更好
3.TFS還須要配合其它不少技術使用,好比實時縮略圖,多級緩存技術等,目前TFS已經開源
4.緩存的利用:靜態頁面內容的緩存(ESI),後臺數據的緩存(memcached)
第5章:分佈式電子商務操做系統
1.框架選擇上可擴展性很重要(webx)
2.模塊要能獨立和複用
3.商品屬性從樹狀的,改成天然屬性+類目屬性,隨着業務的擴大,系統愈來愈強大
4.當業務和數據達到容量上限之後,就得拆分。模塊作成服務化
5.中間件系統:實時的HSF和異步消息通知的Notify
6.管理一個系統就和管理一個超市同樣,有許多相似的技術:集羣、分工、負載均衡、根據QoS分配資源
7.經過心跳感應來保證分佈式服務器的穩定
8.在使用HSF以前,系統間調用方式五花八門,有JAR包打包,Hessian接口,webService,socket,http請求等。這些方式單一場景下還好,可是淘寶這麼多業務就不適合了,要統一
9.由於異步和多系統之間的消息通知的需求,產生了notify
10.TDDL的三個主要特性:數據訪問路由、多想非對稱複製(一次寫入、多點讀取)、數據存儲的自由擴展。另外TDDL通過4個年頭,也是一步步造成如今的樣子的,好的技術果真都是磨出來的
11.TBsession,解決分佈式session統一和訪問的問題
12.淘寶3.0,應用切分,服務切分,數據庫切分,採用分佈式的技術走向了更穩定的成更低更有效的系統
13.開放平臺:新業務推進新技術,出於給中小企業提供幫助的目的,作的開放平臺的開發中,產生了Hadoop等技術的應用。開始技術與業務的互相推進。技術要實現價值必須結合業務的發展。
第6章:我在淘寶這八年
總結:機會有時候靠運氣,努力要靠本身,失敗確定有的,機會也在下一個路口
第7章:牛P列傳
略