總金額: 會員:NT$ 0 非會員:NT$ 0 
(此金額尚未加上運費)
電子電信技術 電腦技術 計算技術、計算機技術
 
 
 
 
超大流量分佈式系統架構解決方案:人人都是架構師2.0
 作  者: 高翔龍
 出版單位: 電子工業
 出版日期: 2020.04
 進貨日期: 2020/5/21
 ISBN: 9787121385056
 開  本: 16 開    
 定  價: 668
 售  價: 356
  會 員 價: 356
推到Facebook 推到Plurk 推到Twitter
前往新書區 書籍介紹 購物流程  
 
編輯推薦:

每一章都是重點,每一章都是解決方案

1、貨真價實的大型網站架構演變過程中核心技術難題的解決方案;

2、全書所有的解決方案分享均來自作者真實的一線親身經歷;

3、大規模服務化場景下,企業實施服務治理的相關難點、痛點問題全面剖析;

4、大規模線上全鏈路壓測落地方案剖析,尋找系統薄弱環節,有指導的在大促前進行容量規劃和性能化,讓系統堅如磐石;

5、大流量限流/削峰案例全面剖析,盡可能將用戶流量擋在系統上游,避免對交易系統產生較大衝擊;

6、深度剖析雙11、雙12等大促搶購場景下,爆款商品、熱點數據的讀/寫優化案例;

7、數據庫Sharding案例全面剖析,為大家深入講解如何有效提升RDBMS的並行處理能力和檢索效率;

7、線上故障排查經驗分享,Sandbox源碼剖析;

8、全書所有解決方案均可結合實際的業務場景來進行落地;

9、全書少理論,重實操;

10、大型網站架構一定是簡單和清晰的,而不是炫技般的複雜化,解決問題採用直接的方式直擊要害才是真正見效的。


內容簡介:

本書共5章,每一章的內容幾乎都是獨立的,大家完全可以有選擇性地閱讀。

第1章以大規模服務化架構作為全書的開篇,主要介紹了分布式系統架構的演變過程,以及在大規模服務調用場景下,如何實施服務治理。

第2章重點介紹了在大促前夕,如何在線上實施全鏈路壓測,以及有指導性地進行容量規劃和性能優化,讓系統堅如磐石。

第3章重點介紹了如何有效地對流量實施管制,若採用合理且有效的方式管制住峰值流量,使其井然有序地對系統進行訪問,則在任何情況下,系統就都能穩定運行。

第4章重點介紹了在大促搶購的場景下,如何解決高併發讀和高併發寫等核心技術難題。

第5章詳細地介紹了關係型數據庫的架構演變過程,還重點介紹了在實際的訂單業務場景下,如何保證數據的最終一致性。


作者簡介:

雲集基礎架構負責人,技術委員會委員,經歷了雲集架構從0到1的蛻變,見證了雲集業務的井噴式增長,擁有大量高併發、大流量,以及海量數據處理的實戰經驗,負責雲集基礎技術平台的架構設計和中間件研發等工作,熱衷於開源技術,常年游走在GitHub上。


圖書目錄:

第 1 章 大系統小做——大規模服務化架構 ................................................................... 1
1.1 分布式系統的架構演變過程 ............................................................................ 1
1.1.1 單機架構 ................................................................................................ 3
1.1.2 集群架構 ................................................................................................ 4
1.1.3 垂直拆分業務子系統 ............................................................................ 6
1.1.4 服務化架構演進 .................................................................................... 8
1.1.5 服務化與微服務架構的區別 ................................................................ 9
1.1.6 集群與分布式的區別 .......................................................................... 10
1.1.7 前後端分離架構演進 ...........................................................................11
1.1.8 API 網關服務 ....................................................................................... 14
1.1.9 分布式多活數據中心架構演進 .......................................................... 17
1.2 服務治理需求 ................................................................................................. 20
1.2.1 服務化與 RPC 協議 ............................................................................. 20
1.2.2 基於服務治理框架 Dubbo 實現服務化 .............................................. 22
1.2.3 警惕因超時和重試引起的系統雪崩 .................................................. 26
1.2.4 為什麼需要實施服務治理 .................................................................. 28
1.2.5 關於服務化後的分布式事務問題 ...................................................... 31
1.2.6 註冊中心性能瓶頸方案 ...................................................................... 32
1.2.7 分布式多活架構下的服務就近調用方案 .......................................... 34
1.3 服務治理之調用鏈 ......................................................................................... 35
1.3.1 Google 的 Dapper 論文簡介 ................................................................ 36
1.3.2 調用鏈的實現方案 .............................................................................. 38
1.3.3 基於非侵入式運行期 AOP 方案實現數據採集上報 ......................... 48
1.3.4 調配采樣率 .......................................................................................... 57
1.4 本章小結 ......................................................................................................... 58
第 2 章 大促備戰核彈——全鏈路壓測 ........................................................................ 59
2.1 為什麼要在線上實施全鏈路壓測 .................................................................. 60
2.2 業務系統如何區分壓測流量 .......................................................................... 63
2.2.1 壓測流量打標方案 .............................................................................. 63
2.2.2 在鏈路上下文信息中傳遞壓測標記 .................................................. 65
2.2.3 外部第三方接口走 Mock .................................................................... 67
2.2.4 壓測數據的隔離方案 .......................................................................... 68
2.3 如何發起大規模的壓測流量 .......................................................................... 69
2.3.1 數據構造平台 ...................................................................................... 69
2.3.2 自研全鏈路壓測軍演系統的一些經驗分享 ...................................... 71
2.4 本章小結 ......................................................................................................... 74
第 3 章 削峰填谷——流控方案 ................................................................................... 75
3.1 為什麼需要限流 ............................................................................................. 76
3.2 限流方案 ......................................................................................................... 79
3.2.1 常見的限流算法 .................................................................................. 80
3.2.2 基於 Guava 實現平均速率限流 .......................................................... 83
3.2.3 接入層限流方案 .................................................................................. 86
3.2.4 應用層限流——限時搶購限流方案 .................................................. 89
3.3 基於時間分片的削峰方案 .............................................................................. 92
3.3.1 活動分時段進行實現削峰 .................................................................. 93
3.3.2 通過答題驗證實現削峰 ...................................................................... 93
3.4 基於消息隊列的解耦、削峰、最終一致性方案 .......................................... 94
3.4.1 基於消息隊列實現解耦 ...................................................................... 95
3.4.2 常見消息中間件的使用 ...................................................................... 96
3.4.3 基於消息隊列的一些典型案例 .........................................................113
3.5 本章小結 ........................................................................................................116
第 4 章 大促搶購核心技術難題——讀/寫優化方案 ................................................... 117
4.1 緩存技術簡介 ................................................................................................118
4.1.1 本地緩存 .............................................................................................119
4.1.2 本地緩存的痛點 ................................................................................ 121
4.1.3 神秘的 off-heap 技術 ......................................................................... 122
4.2 高性能分布式緩存 Redis ............................................................................. 127
4.2.1 基於 Jedis 客戶端操作 Redis ............................................................ 128
4.2.2 基於 RedisCluster 模式實現 Sharding .............................................. 129
4.3 同一熱賣商品高併發讀難題 ........................................................................ 133
4.3.1 多級緩存方案 .................................................................................... 135
4.3.2 緩存穿透思考 .................................................................................... 139
4.3.3 RedisCluster 模式下的讀/寫分離方案 .............................................. 140
4.4 同一熱賣商品高併發寫難題 ........................................................................ 143
4.4.1 InnoDB 引擎的行鎖問題 .................................................................. 143
4.4.2 基於 Redis 樂觀鎖的庫存扣減方案 ................................................. 145
4.4.3 嵌入 Lua 腳本的庫存扣減方案 ........................................................ 149
4.4.4 基於 AliSQL 數據庫提升併發寫性能 .............................................. 155
4.5 本章小結 ....................................................................................................... 161
第 5 章 星羅棋布——分庫分表方案 .......................................................................... 162
5.1 關係數據庫的架構演變 ............................................................................... 163
5.1.1 數據庫讀/寫分離 ............................................................................... 163
5.1.2 數據庫垂直分庫 ................................................................................ 164
5.1.3 數據庫水平分庫與水平分表 .........


章節試讀:

雲集在成立的4年多時間裡,業務飛速發展,經常上演各種脈衝式銷量神話,比如,一個單品單日銷售額達3億多元。對我們的技術團隊而言,這是一個快速成長、頗具挑戰的機會。

翔龍是一個非常熱愛技術且沉醉於技術的人,其帶領的基礎架構團隊,在應對高併發、大流量等方面發揮了很大的作用,也積累了寶貴的一線經驗。本書的所有內容,並不是對架構理論的泛泛而談,而是雲集技術架構從0到1演變的寶貴實踐經驗。我崇尚技術,也推崇技術,業務能夠推動技術迅速成長,技術反過來也能推動業務加速增長。

我從本書的內容中感受到:超大流量分布式系統的架構必然是簡單和清晰的,是需要不斷PDCA(計劃、執行、查驗與行動)的,也在不斷的迭代、演進中。

我相信,本書所呈現的寶貴實戰經驗對大家大有裨益,會為大家的實際工作帶來諸多幫助。

雲集CEO 肖尚略





本書的創作初衷

任何一本書,都是一個用於承載和傳遞知識的載體,讀者可以從中探尋自己想要的答案。對我而言,書本就是帶我領略奇妙計算機世界的最快途徑。之所以想創作一本與大型網站架構相關的書籍,是因為最近幾年我在實際的開發過程中經歷了太多的技術難題,每當我和我的技術團隊嘗試解決這些問題之前,都會先嘗試從市面上現有的技術書籍中尋求解決方案;但事與願違,目前市面上高歌架構理論的讀物居多,真正講解大型網站架構解決方案的書籍卻寥寥無幾。對於這塊領域的空白,我想嘗試著去創作,把我這些年的經歷和經驗寫出來,讓更多人受益,畢竟架構是需要落地的,否則便是一紙空談。

本書內容重點

本書一共5章,而每一章的內容幾乎都是獨立的,大家完全可以有選擇性地進行閱讀。在第1章中,筆者特意選擇了以服務化架構作為全書的開篇,結合筆者多年來的實踐經驗,從0到1為大家講解了大型網站架構的演變過程,以及在大規模服務化場景下企業應該如何實施服務治理。

驗證系統所能夠承受的最大負載是否接近於預期,是否經得住大流量的衝擊,絕非是一件易事。有過分布式系統開發經驗的同學都應該非常清楚,簡單對某個接口、子系統進行壓測,並不能夠準確探測出系統整體的容量水位,這是由分布式系統與生俱來的複雜性決定的,並且對環境、目標都有著極為嚴苛的要求。近些年,全鏈路壓測似乎備受追捧,基本上各大互聯網企業,比如,阿里、京東等都會在大促前夕利用自研的“軍演系統”在線上進行壓測實戰演練,其目的就是確保大促來臨時核心鏈路的整體穩定。在第2章中,筆者重點為大家介紹了如何在大促前夕對線上環境實施全鏈路壓測,以及如何做到有指導地在大促前進行容量規劃和性能優化,讓系統堅如磐石。

像天貓這種級別的大型電商網站,主要的技術挑戰是來自龐大的用戶規模所帶來的大流量、高併發,以及海量數據,在“雙11”“雙12”等大促場景下尤為明顯。如果不對流量進行合理管制,肆意放任大流量衝擊系統,那麼將會導致一系列的問題出現,比如一些可用的連接資源被耗盡、分布式緩存的容量被撐爆、數據庫吞吐量降低,最終必然會導致系統產生雪崩效應。在第3章中,筆者重點講解了如何有效地對流量實施管制,只要我們能夠採用合理且有效的方式管制住峰值流量,使其井然有序地對系統進行訪問,那麼無論在任何情況下,系統都能夠穩定運行。

熱點數據的大併發讀/寫操作,可謂是秒殺、限時搶購等場景下最核心的2個技術難題。針對熱點數據的大併發讀操作,儘管我們可以通過分布式緩存來提升系統的QPS,但是緩存系統的單點容量還是存在上限的,一旦超過臨界水位,分布式緩存容易被瞬間擊穿。而熱點數據的大併發寫操作,勢必會下潛至數據庫,那麼這就會引起大量的線程相互競爭InnoDB的行鎖,併發越大時,等待的線程就越多,這會嚴重影響數據庫的TPS,導致RT線性上升,最終導致系統發生雪崩。在第4章中,筆者會重點為大家講解大促搶購核心技術難題的一系列解決方案。

在第5章中,筆者詳細為大家講解了在互聯網場景下關係型數據庫的架構演變過程。當大家清楚為什麼關係型數據庫需要進行分庫分表後,筆者又實戰演示了如何使用Shark中間件來完成數據路由,以及業務實施分庫分表後的諸多注意事項和數據庫的HA方案等。最後,還結合了實際的訂單業務場景為大家重點講解了如何保證數據的最終一致性。

本書面向的讀者

本書適用於任何對大型網站架構感興趣的架構師、開發人員,以及運維人員。我盡量用通俗易懂的文字描繪書中的各章知識點,更是結合了實際的業務場景引入了大量的真實案例,相信閱讀完本書後你將能有所裨益。

讀者討論

由於能力有限,書中難免會出現一些錯誤或者不準確的地方,大家可以通過郵件gao_xianglong@sina.com將問題反饋給我,我會及時予以答覆。

致謝

首先我要感謝我的妻子,是你的支持和鼓勵才讓我有了繼續創作的勇氣。每當我頭痛欲裂思緒全無時,你的陪伴點燃了我在每個凌晨的鬥志,我愛你。

其次,本書的順利出版離不開孫學瑛老師及博文視點團隊的共同努力,感謝你們的辛苦付出。最後,還要感謝那些一路支持我的讀者朋友們,謝謝你們。



2019年11月05日凌晨


圖片預覽:

 
  步驟一.
依據網路上的圖書,挑選你所需要的書籍,根據以下步驟進行訂購
選擇產品及數量 結 帳 輸入基本資料 取貨與付款方式
┌───────────────────────────────────────────────────┘
資料確定 確認結帳 訂單編號    

步驟二.
完成付款的程序後,若採用貨到付款等宅配方式,3~7天內 ( 例假日將延期一至兩天 ) 您即可收到圖書。若至分店門市取貨,一週內聯絡取書。

步驟三.
完成購書程序者,可利用 訂單查詢 得知訂單進度。

注意事項.
● 付款方式若為網路刷卡必須等" 2 ~ 3 個工作天"確認款項已收到,才會出貨.如有更改書籍數量請記得按更新購物車,謝謝。

● 大陸出版品封面老舊、磨痕、凹痕等均屬常態,除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。

● 至2018年起,因中國大陸環保政策,部分書籍配件以QR CODE取代光盤音頻mp3或dvd,已無提供實體光盤。如需使用學習配件,請掃描QR CODE 連結至當地網站註冊並通過驗證程序,方可下載使用。造成不便,敬請見諒。

● 我們將保留所有商品出貨權利,如遇缺書情形,訂單未達免運門檻運費需自行負擔。

預訂海外庫存.
商品到貨時間須4週,訂單書籍備齊後方能出貨,如果您有急用書籍,建議與【預訂海外庫存】商品分開訂購。