主頁 > 軟體設計 > 大資料讀書——《淘寶技術這十年》讀書筆記

大資料讀書——《淘寶技術這十年》讀書筆記

2021-06-15 07:06:46 軟體設計

文章目錄

    • 引言
    • 一 淘寶技術的升級打怪之路
      • 脫胎換骨的升級——從PHP到JAVA
      • 資料庫的升級打怪之路
    • 二 淘寶大資料的三駕馬車
      • 淘寶檔案系統——TFS
      • 淘寶KV快取系統——Tair
      • 飛天大資料
    • 三 淘寶的掃地僧們
      • 正祥——淘寶高級研究員,OceanBase專案
      • 云錚——資料平臺與產品部資深技術專家
    • 總結

引言

大家好,我是ChinaManor,直譯過來就是中國碼農的意思,俺希望自己能成為國家復興道路的鋪路人,大資料領域的耕耘者,平凡但不甘于平庸的人,

在這里插入圖片描述

淘寶技術這十年》是電子工業出版社2013年5月出版的圖書,由子柳編著,書從工程師的角度講述淘寶這個超大規模互聯網系統的成長歷程,及其所有主動和被動的技術變革的前因后果,
任何網站的發展都不是一蹴而就的,它在發展程序中會遇到各種各樣的問題和業務帶來的壓力,正是這些問題和壓力推動著技術的進步和發展,而技術的發展反過來又會促進業務的更大提升,如今淘寶網的流量排名已是全球前15名、國內前3名,其系統服務器也從一臺發展到萬臺以上,

近期差不多把==《淘寶技術這十年》讀完了==(小米手表yyds ),便想做個讀書筆記以便日后回顧,
從整體上說,這本書并不難讀,更多是作者子柳在阿里巴巴的親身經歷所寫成一篇篇故事,

所以從技術人的視角來說,讀完后會有一種從小網頁到大型網站的演變感,就好似大資料誕生的原因就是傳統的資料庫滿足不了了企業不斷增長的業務量,接下來我將從三個方面來記錄自己作為一個大資料專業的學生的讀書識訓:

一 淘寶技術的升級打怪之路

脫胎換骨的升級——從PHP到JAVA

淘寶的第一個網站系統是從一個美國人那里買來的

1.買一個網站顯然比做一個網站要省事,但是他們的夢想可不
是做一個小網站而已,要做大,就不是隨便買一個就行的,要有
比較低的維護成本,要能夠方便地擴展和二次開發,那么接下來
就是第二個問題:買一個什么樣的網站?答案是:輕量一點的,
簡單一點的,于是買了這樣一個架構的網站:LAMP(Linux+
Apache+MySQL+PHP),這個直到現在還是一個很常用的網站架
構模型,其優點是:無須編譯,發布快速,PHP語言功能強大,
能做從頁面渲染到資料訪問所有的事情,而且用到的技術都是開
源、免費的,
2.2004年初,SQL Relay的問題解決不了,資料庫必須要用Oracle,那么從哪里
動刀呢?只有換開發語言了,換什么語言好?用Java,Java是當時
最成熟的網站開發語言,它有比較良好的企業開發框架,被世界
上主流的大規模網站普遍采用,另外,有Java開發經驗的人才也比
較多,后續維護成本會比較低,

資料庫的升級打怪之路

1.從MySQL換為Oracle的原因除了它容量大、穩定、
安全、性能高之外,還有人才方面的原因,
2.MySQL撐不住之后換為Oracle,Oracle的存盤一開始在本機上,后來在NAS
上,NAS撐不住了用EMC的SAN存盤,再后來,Oracle的RAC撐不住了,資料的存盤方面就不得不考慮使用小型機,
3.然后Oracle就運行在了小型機上,存盤方面,從EMC低端CX存盤到Sun oem hds高端存盤,再到EMC dmx高端存盤,一級一級地往上跳,

二 淘寶大資料的三駕馬車

淘寶檔案系統——TFS

說到TFS的系統架構,首先要描述清楚業務需求,淘寶對圖片存盤的需求大概可以描述如下:
檔案比較小;并發量高;讀操作遠大于寫操作;訪問隨機;
沒有檔案修改的操作;要求存盤成本低;能容災,能備份,
顯然,應對這種需求時要用分布式存盤系統;由于檔案大小比較統一,可以采用專有檔案系統;
由于并發量高,讀寫隨機性強,需要更少的I/O操作;
考慮到成本和備份,需要用廉價的存盤設備;考慮到容災,需要能平滑擴容,
TFS1.0架構圖
關于TFS,有時間我會在寫一篇博客介紹,

淘寶KV快取系統——Tair

Tair包括快取和持久化兩種存盤功能,Tair作為一個分布式系統,由一個中
心控制節點和一系列的服務節點組成,我們稱中心控制節點為
Config Server,服務節點是Data Server,Config Server 負責管理所
有的Data Server,維護Data Server的狀態資訊,Data Server 對外
提供各種資料服務,并以心跳的形式將自身的狀況匯報給Config
Server,Config Server是控制點,而且是單點,目前采用一主一備
的形式來保證其可靠性,所有的Data Server 地位都是等價的,
Tair的架構圖
在這里插入圖片描述

飛天大資料

三 淘寶的掃地僧們

正祥——淘寶高級研究員,OceanBase專案

負責人
子柳:競爭對手對OceanBase有以下看法,對此你怎么看?
有一個中心點,在資料量很大的情況下,單點有風險;
HBase開源,大公司主導,很多坑都走過了,

正祥:OceanBase最好的地方就是具備事務,資料一致性很
好,HBase在資料容量上會有優勢,幾千萬億位元組都有可能,但
它沒有解決事務的問題,從資料規模來看,雖然有個單點(有熱備
的),但OceanBase資料規模仍然可以達到關系資料庫幾十倍甚至
幾百倍的規模,

子柳:OceanBase推廣的成本高不高?
正祥:OceanBase的推廣應用得到了各個方面的配合,DBA團
隊已經跟OceanBase融合在一起了,OPS也是不遺余力,非常關鍵
的是,OceanBase得到了應用和業務團隊非常大的支持,資料庫的
遷移是有作業量的,而且還是有風險的,在應用部門的配合下,
OceanBase已經做到了從原來的關系資料庫平臺無縫遷移到新的平
臺上,并且不停止服務,在對OceanBase進行升級時也不停止服
務,到現在已經跑了半年,系統也比較穩定,且沒有停止過服務,

子柳:OceanBase應用之后,節約了多少成本?
正祥:還真沒細算過,首先Oracle的License就是很貴的,這個
是我們能省下來的,服務器的數量也能減少,例如,收藏夾,原
來每個機房有16臺機器,OceanBase剛上線的時候是一個機房14臺
機器,后來資料量和訪問量都已經翻倍了,還是14臺機器,現在
我們正在換成6臺SSD盤的機器,預計能提供更大的訪問量,
另外,成本最高的其實還不止是這些設備,而是網路帶寬和
機房機架等的成本,若減少機器的數量,會降低這方面的成本,
淘寶的業務在高速增長,資料量和訪問量在加速增長,但電力和
機房資源不可能同步高速增長,從現在起,我們就必須在提升服
務能力和性能的同時,降低服務器的使用量,否則不僅是成本令
我們無法承受,機房和機架也無法找到,此外,從節省能源的角
度來說,我們也必須要低碳環保,

云錚——資料平臺與產品部資深技術專家

子柳:我們的資料計算平臺與Google、Amazon有什么異同?
云錚:從相同點看,這個級別的公司做資料,從宏觀上看
都是分布式的,Google做得早一點,他們自己開發的Bigtable、
GFS,從分布式存盤到分布式計算開發了一系列的產品,用在自
己的搜索中,Amazon和Google又不太一樣,Amazon采用虛擬機的
方式,自己給別人搭OPS,用虛擬機租賃的方式做云計算,自己
也有一些業務資料放在上面,
淘寶采用在開源的分布式平臺上面用Patch的方式來做,從
“云梯”到“飛天”這樣的平臺,分布式的理念是相通的,我們
擁有全套“飛天”系統的自主知識產權,有不少精妙的設計,自
主設計的后勁很足,
另外一個很重要的不同點是里面的資料是不同的,資料的價
值也是不同的,淘寶把中國電子商務從零開始到現在,幾乎所有
的資料都包含了,有B2B、B2C和C2C的商品資料,以及交易資料
和支付資料,而Amazon只有B2C的資料,Google沒有商業資料,
都是搜索的資訊,淘寶的資料從量和質上面都非常高,而且更適
合中國的國情,這上面是中國人的消費資料,這些資料的價值需
要持續地創新和在更大的生態鏈中去尋找和挖掘,

子柳:我們的資料現在達到了一個什么樣的規模?
云錚:我們的資料每日新增長達到100TB左右,通過極限存
儲等創新的技術手段,控制凈增量快速增長的勢頭,

總結

以上便是《淘寶技術這十年》的讀書筆記,總的來說書寫的幽默有趣,建議有時間的話可以讀一讀,無論是程式員,產品經理,運維人員都會有自己的識訓,
這本書的pdf版可以私信我獲取

愿你讀過之后有自己的識訓,如果有識訓不妨一鍵三連一下~

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/287370.html

標籤:其他

上一篇:分享互聯網2021年最新Java面試題匯總整理-附詳細答案決議

下一篇:VUE學習筆記:12.組件化之:slot組件插槽講解

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more