1. 程式人生 > >【淘寶技術這十年】,讀後總結篇

【淘寶技術這十年】,讀後總結篇

一看就是一天,晚飯忘了吃了。因為裡面涉及的技術確實頗有傳奇色彩。

突然覺得,沒有時間看書,而且需要補充技術營養的技術宅來說,勤奮的渣渣我來提供福利了,萃取一些精華分享給大家吧再見

--------start----------------------------------------

1.2007年分散式檔案系統TFSTaoBao File System---->解決淘寶檔案圖片資源載入慢的問題

2Tair(淘寶自行研發的分散式KV儲存方案)---->寶貝快照

3.淘寶研發了TimeTunnel,用於進行實時的資料傳輸---->為了快速、及時、同步地傳輸日誌資料

4.雲梯的基於

Hadoop的由3000多臺伺服器組成的超大規模資料系統,ODPS系統的資料系統--->不斷地進行分析和挖掘使用者資料(交易,瀏覽,操作日誌等)

5.MVC框架是阿里的WebX,控制層用了EJB,持久層是ibatis

6.淘寶網將圖片處理與快取編寫成基於Nginx的模組

7.淘寶網使用GraphicsMagick進行圖片處理,採用了面向小物件的快取檔案系統,前端有LVS+Haproxy將原圖和其所有的縮圖請求都排程到同一臺Image Server(圖片伺服器)。

8.在檔案定位上,記憶體用Hash演算法做索引,最多一次讀盤。另外會有很多相同的圖片重複上傳上來,去除重複檔案也是採用Hash演算法來做

9.ESI是一種資料緩衝/快取伺服器,它提供將Web網頁的部分(這裡指頁面的片段)進行緩衝/快取的技術及服務

10.ESI是一種資料緩衝/快取伺服器,它提供將Web網頁的部分(這裡指頁面的片段)進行緩衝/快取的技術及服務

11.UIC的一個快取系統,取名叫做TDBMTDBM拋棄了Berkeley DB的持久功能,資料全部存放在記憶體中。

12.由於TDBMTBstore的資料介面和用途都很相似,開發團隊把二者合併,推出了淘寶自創的Key-Value快取系統——TairTaoBao Pair的意思,PairKey-Value資料對)。Tair包括緩

存和持久化兩種儲存功能。Tair作為一個分散式系統,由一箇中心控制節點和一系列的服務節點組成,我們稱中心控制節點為

Config Server,服務節點是Data ServerConfig Server 負責管理所

有的Data Server,維護Data Server的狀態資訊。Data Server 對外提供各種資料服務,並以心跳的形式將自身的狀況彙報給ConfigServerConfig Server是控制點,而且是單點,目前採用一主一備

的形式來保證其可靠性。所有的Data Server 地位都是等價的。

13.在商品分類方面,從系統的角度來看,建立了“屬性”這樣一個數據結構,由於除了類目的子節點有屬性外,父節點也可能有屬性,於是類目屬性合起來也是一個結構化的資料物件。

把它獨立出來作為一個服務,叫做CatserverCategory Server)。跟類目屬性密切關聯的商品搜尋功能獨立出來,叫做Hesper(金星)。CatserverHesper供淘寶的前後臺系統呼叫。

14.由於季節不同,商品目錄在前臺需要根據運營者制定,後臺還是自然目錄儲存,改造後的類目屬性服務取名為Forest(森林,與類目屬性有點神似。Catserver還用於提供賣家授權、品牌服務、關鍵詞等相關的服務)。

類目屬性的服務化是淘寶在系統服務化方面做的第一個探索。

15.中介軟體系統,一種是實時呼叫的中介軟體(淘寶的HSF,高效能服務框架),一種是非同步訊息通知的中介軟體(淘寶的Notify

16.HSF


這就是HSF的設計思想,服務的提供者啟動時通過HSF框架向ConfigServer(類似超市的電視機)註冊服務資訊(介面、版本、超時時間、序列化方式等),這樣ConfigServer上面就定義了所有可供呼叫的服務(同一個服務也可能有不同的版本);服務呼叫者啟動的時候向ConfigServer註冊對哪些服務感興趣(介面、版本),當服務提供者的資訊變化時,ConfigServer向相應的感興趣的服務呼叫者推送新的服務資訊列表;呼叫者在呼叫時則根據服務資訊的列表直接訪問相應的服務提供者,而無須經過ConfigServer。我們注意到ConfigServer並不會把服務提供者的IP地址推送給服務的呼叫者,HSF框架會根據負載狀況來選擇具體的伺服器,返回結果給呼叫者,這不僅統一了服務呼叫的方式,也

實現了“軟負載均衡”。平時ConfigServer通過和服務提供者的心跳來感應服務提供者的存活狀態。

17.Notify

 

NotifyServer在ConfigServer上面註冊訊息服務,訊息的客戶端通過ConfigServer訂閱訊息服務。某個客戶端呼叫NotifyServer傳送一條訊息,NotifyServer負責把訊息傳送到所有訂閱這個訊息的客戶端(這個過程參照HSF一節,原理是一樣的)。為了保證訊息一定能發出,且對方也一定能收到,訊息資料本身就需要記錄下來,這些資訊存放在資料庫中(可以是各種資料庫)。由於訊息具有中間狀態(已傳送、未傳送等),應用系統通過Notify可以實現分散式事物——BASE(基本可用(Basically Available)、軟狀態 (Soft State)、最終一致(Eventually Consistent))。NotifyServer可以水平擴充套件,NotifyClient也可以水平擴充套件,資料庫也可以水平擴充套件,從理論上講,這個訊息系統的吞吐量是沒有上限的,現在Notify系統每天承載了淘寶10億次以上的訊息通知。

18.TDDL

TDDL實現了下面三個主要的特性:

yy資料訪問路由——將針對資料的讀寫請求傳送到最合適的

地方;

yy資料的多向非對稱複製——一次寫入,多點讀取;

yy資料儲存的自由擴充套件——不再受限於單臺機器的容量瓶頸

與速度瓶頸,平滑遷移。

下圖展示了TDDL所處的位置。

 

簡單的分庫分表資料查詢策略

先吃飯去~,明天再看。。。o(╯□╰)o害羞

19.ODPS -->http://odps.aliyun.com/.

ODPS是開發資料倉庫的平臺工具。
資料倉庫的傳統市場是電信和銀行,傳統解決方案很昂貴。
網際網路運營團隊越來越依賴於大資料分析工具。
雲端計算是技術創新也是業務創新。
對於網路行業,業務資料天然在網上,匯入ODPS更容易。
對於傳統行業,前期可能需要VM、RDS和OTS等兄弟產品開路,逐步引導使用者使用ODPS。


20.飛天體系

21.CDN