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


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

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


--------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



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com