淘寶技術(shù)發(fā)展歷程

筆者非專業(yè)人士,從《淘寶技術(shù)這十年》書中整理而來,若有遺漏或錯誤,望海涵并指正。同時需要注意的是文中所寫的很多技術(shù)性能僅代表當初,不能等同于現(xiàn)今。


2003年4月,淘寶秘密起始于湖畔花園,購買了一個LAMP(Linux+Apache+MySQL+PHP)架構(gòu)的網(wǎng)站。

2003年底,MySQL換成Oracle,同時使用一個開源的連接池代理服務(wù)SQL Relay。Oracle容量大、穩(wěn)定、安全、性能高,Oracle的性能和并發(fā)訪問能力之所以如此強大,有一個關(guān)鍵性設(shè)計——連接池,連接池中放的是長連接,任何一個請求只需要從連接池中取得一個鏈接即可,用完后釋放,不需要頻繁的創(chuàng)建和斷開連接。(2003年時的情況)

2004年,為解決SQL Relay死鎖問題,開發(fā)語言從PHP換成Jave。原因是當時(04年)Jave是最成熟的網(wǎng)站開發(fā)語言,有比較良好的企業(yè)開發(fā)框架,被世界上主流的大規(guī)模網(wǎng)站普遍采用。另外市場上Jave開發(fā)人才比較多,后期維護成本較低。

2004-2005(大概是這個時間段),引入IBM小型機、使用EMC存儲。

2005年工作:
1、Oracle數(shù)據(jù)庫分庫,商品信息和用戶信息分庫存放,由數(shù)據(jù)庫路由的框架DBRoute統(tǒng)一處理數(shù)據(jù)的合并、排序、分頁等操作;
2、控制層用Spring框架替換EJB;
3、研發(fā)基于Berkeley DB的緩存系統(tǒng),把很多不太變動的只讀信息放了進去;
4、加入CDN內(nèi)容分發(fā)網(wǎng)絡(luò)。
目的:圍繞提高容量、提高性能和節(jié)約成本。

2007年,參照GFS(Google File System),研發(fā)了淘寶圖片存儲系統(tǒng)TFS(TaoBao File System)。
特點:文件比較?。徊l(fā)量高;讀操作遠大于寫操作;訪問隨機;沒有文件修改的操作;存儲成本低;能容災(zāi)、能備份。
TFS已開源:code.taobao.org

2007年,開發(fā)分布式緩存系統(tǒng)Tair(TaoBao Pair),由一個中心控制節(jié)點和一系列的服務(wù)節(jié)點組成。
Tair已開源:code.taobao.org

2008年后:
打散樹狀節(jié)點,把品牌、款式、材質(zhì)等做成類似于標簽的概念(屬性),建立離散、靈活的數(shù)據(jù)結(jié)構(gòu)。
拆分底層業(yè)務(wù),例如建訂單、減庫存、修改訂單狀態(tài)等原子級操作,由原子級操作組成模塊,大量模塊可以復(fù)用,每個系統(tǒng)可以單獨部署。

開發(fā)了高性能服務(wù)框架HSF,解決分布式情況下的服務(wù)調(diào)用問題。

推出消息中間件Notify:把要發(fā)出的通知存放在數(shù)據(jù)庫中,如果實時發(fā)送失敗,再用一個時間程序來周期性地發(fā)送這些通知,系統(tǒng)記錄下消息的中間狀態(tài)和時間戳,保證消息一定能發(fā)出,也一定能通知到,且通知帶有時間順序,通知甚至可以實現(xiàn)事務(wù)性的操作。

數(shù)據(jù)庫分庫數(shù)量增多后,研發(fā)出數(shù)據(jù)查詢的中間件TDDL(分布式數(shù)據(jù)訪問層)
三個主要特性:
1、將針對數(shù)據(jù)的讀寫請求發(fā)送到最合適的地方;
2、數(shù)據(jù)的多向非對稱復(fù)制——一次寫入,多點讀取;
3、不再受限于單臺機器的容量瓶頸與速度瓶頸,平滑遷移。

Tbsession框架,保證分布式集群情況下Session共享的問題。初期Session是存放到用戶Cookie,避免了Session復(fù)制、硬件負載等問題。流量太龐大之后,采用將Session放到服務(wù)器的集中緩存區(qū)(前文提到的Tair)來解決用戶登錄問題。


參考書籍《淘寶技術(shù)這十年》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容