首 頁
手機版

人人都是架構師:分布式系統(tǒng)架構落地與瓶頸突破 高翔龍 pdf掃描版

  • 軟件大?。?9.95M
  • 軟件語言:簡體中文
  • 軟件類型:國產(chǎn)軟件
  • 軟件授權:免費軟件
  • 更新時間:2023/09/07
  • 軟件類別:電子閱讀
  • 應用平臺:Windows10,Windows8,Windows7,WinVista,Win2003,WinXP,Win2000
網(wǎng)友評分:5.0分
網(wǎng)友評論 下載地址 收藏該頁
本地下載

人人都是架構師:分布式系統(tǒng)架構落地與瓶頸突破是一本貨真價實的互聯(lián)網(wǎng)場景下大型網(wǎng)站架構演變過程中核心技術難題的解決方案,由高翔龍編著。本書全部來源于作者真實經(jīng)歷的生產(chǎn)案例,大型網(wǎng)站應對高并發(fā)、大流量的應急寶典,全書毫無保留地闡述了作者多年在互聯(lián)網(wǎng)企業(yè)的架構設計經(jīng)驗,具體內(nèi)容包括分布式服務案例全面剖析、大流量限流/消峰案例全面剖析、從接入層到存儲系統(tǒng)、數(shù)據(jù)庫分庫分表案例全面剖析等等,作者不吹牛、不夸張,腳踏實地為你剖析架構如何落地,歡迎免費下載閱讀。

人人都是架構師:分布式系統(tǒng)架構落地與瓶頸突破

內(nèi)容介紹

《人人都是架構師:分布式系統(tǒng)架構落地與瓶頸突破》并沒有過多渲染系統(tǒng)架構的理論知識,而是切切實實站在開發(fā)一線角度,為各位讀者詮釋了大型網(wǎng)站在架構演變過程中出現(xiàn)一系列技術難題時的解決方案。本書首先從分布式服務案例開始介紹,重點為大家講解了大規(guī)模服務化場景下企業(yè)應該如何實施服務治理;然后在大流量限流/消峰案例中,筆者為大家講解了應該如何有效地對流量實施管制,避免大流量對系統(tǒng)產(chǎn)生較大沖擊,確保核心業(yè)務的穩(wěn)定運行;接著筆者為大家講解了分布式配置管理服務;之后的幾章,筆者不僅為大家講解了秒殺、限時搶購場景下熱點數(shù)據(jù)的讀/寫優(yōu)化案例,還為大家講解了數(shù)據(jù)庫實施分庫分表改造后所帶來的一系列影響的解決方案。

《人人都是架構師:分布式系統(tǒng)架構落地與瓶頸突破》非常適用于任何對分布式系統(tǒng)架構感興趣的架構師、開發(fā)人員以及運維人員。相信閱讀本書你將會有知其然和知其所以然的暢快感。

人人都是架構師內(nèi)容重點

本書每一章的內(nèi)容幾乎都是獨立的,大家完全可以挑選自己感興趣或者有需要的部分進行閱讀。本書一共包含5章,筆者首先從分布式服務案例開始講起,將大家?guī)нM分布式系統(tǒng)的殿堂。在第1章中,筆者講解了大型網(wǎng)站的架構演變過程,讓大家對分布式系統(tǒng)建立一個基本的認識。當然,本章的重點是講解企業(yè)在大規(guī)模服務化后應該如何實施服務治理,以及應該如何構建一個分布式調用跟蹤系統(tǒng),以一種可視化的方式來展現(xiàn)跟蹤到的每一個請求的完整調用鏈,并收集調用鏈上每個服務的執(zhí)行耗時,整合孤立日志等。

為了避免大促場景下峰值流量過大,對系統(tǒng)造成較大負載導致產(chǎn)生雪崩現(xiàn)象,筆者在本書的第2章為大家講解了大流量限流/消峰案例,讓系統(tǒng)的負載壓力始終處于一個比較均衡的水位,從而保護系統(tǒng)的穩(wěn)定運行。筆者首先從限流算法開始講起,然后分享了業(yè)務層面和技術層面等兩個維度的流量管制方案。當然,本章的重點是為大家演示如何通過MQ來實現(xiàn)大流量場景下的流量消峰。

人人都是架構師的第3章為大家講解了分布式配置管理服務案例(配置中心)。盡管目前一些中小型互聯(lián)網(wǎng)企業(yè)仍然將本地配置作為首選,但是當網(wǎng)站發(fā)展到一定規(guī)模后,繼續(xù)采用本地配置所暴露的問題將會越來越多。大型網(wǎng)站使用分布式配置管理平臺不僅能夠實現(xiàn)配置信息的集中式管理、降低維護成本和配置出錯率,還能夠動態(tài)獲取/更新配置信息。本章的重點是為大家演示如何基于ZooKeeper構建一個分布式配置管理平臺,以及使用淘寶Diamond和百度Disconf系統(tǒng)來實現(xiàn)分布式配置管理服務。

熱點數(shù)據(jù)的讀/寫操作其實是秒殺、限時搶購場景下最核心的技術難題。在大促場景下,由于峰值流量較大,大量針對同一熱賣商品的并發(fā)讀/寫操作一定會導致后端的存儲系統(tǒng)產(chǎn)生性能瓶頸,因此第4章為大家講解了大促場景下熱點數(shù)據(jù)的讀/寫優(yōu)化案例。盡管商品信息可以緩存在分布式緩存中,通過集群技術,可以在理論上認為其容量是無限的,但是對于大促場景下的熱賣商品來說,由于單價比平時更給力、更具吸引力,因而自然會比平時吸引更大的流量進來;這時同一個Key必然會落到同一個緩存節(jié)點上,而分布式緩存在這種情況下一定會出現(xiàn)單點瓶頸,因此筆者為大家演示了如何實施多級Cache方案來防止分布式緩存系統(tǒng)出現(xiàn)單點瓶頸。由于寫操作無法直接在緩存中完成,因此大量的并發(fā)更新熱點數(shù)據(jù)(庫存扣減)都是針對數(shù)據(jù)庫中同一行的——本書以MySQL為例,而這必然會引起大量的線程來相互競爭InnoDB的行鎖;并發(fā)越大時,等待的線程就越多,這會嚴重影響數(shù)據(jù)庫的TPS,導致RT線性上升,最終可能引發(fā)系統(tǒng)出現(xiàn)雪崩。為了避免數(shù)據(jù)庫淪為瓶頸,筆者為大家演示了如何通過分布式鎖、樂觀鎖在分布式緩存系統(tǒng)中扣減庫存、通過搶購限流控制單機并發(fā)寫流量,以及如何使用阿里開源的AliSQL數(shù)據(jù)庫提升“秒殺”場景性能。

在本書的最后一章,筆者為大家講解了數(shù)據(jù)庫分庫分表案例。本章演示了如何通過分庫分表中間件Shark來幫助企業(yè)實施分庫分表改造,以及分庫分表后所帶來一系列影響的解決方案,并重點分享了筆者在實際工作中訂單業(yè)務實施分庫分表改造后,應該如何同時滿足Buyer和Seller的多維度查詢需求。

章節(jié)目錄

第1章 分布式服務案例 1

1.1 分布式系統(tǒng)的架構演變過程 2

1.1.1 單機系統(tǒng) 3

1.1.2 集群架構 4

1.1.3 拆系統(tǒng)之業(yè)務垂直化 6

1.1.4 為什么需要實現(xiàn)服務化架構 8

1.1.5 服務拆分粒度之微服務 10

1.2 系統(tǒng)服務化需求 11

1.2.1 服務化與RPC協(xié)議 11

1.2.2 使用阿里分布式服務框架Dubbo實現(xiàn)服務化 12

1.2.3 警惕Dubbo因超時和重試引起的系統(tǒng)雪崩 16

1.2.4 服務治理方案 18

1.2.5 關于服務化后的分布式事務問題 20

1.3 分布式調用跟蹤系統(tǒng)需求 21

1.3.1 Google的Dapper論文簡介 22

1.3.2 基于Dubbo實現(xiàn)分布式調用跟蹤系統(tǒng)方案 25

1.3.3 采樣率方案 35

1.4 本章小結 37

第2章 大流量限流/消峰案例 38

2.1 分布式系統(tǒng)為什么需要進行流量管制 39

2.2 限流的具體方案 42

2.2.1 常見的限流算法 43

2.2.2 使用Google的Guava實現(xiàn)平均速率限流 45

2.2.3 使用Nginx實現(xiàn)接入層限流 48

2.2.4 使用計數(shù)器算法實現(xiàn)商品搶購限流 49

2.3 基于時間分片的消峰方案 51

2.3.1 活動分時段進行實現(xiàn)消峰 52

2.3.2 通過答題驗證實現(xiàn)消峰 52

2.4 異步調用需求 53

2.4.1 使用MQ實現(xiàn)系統(tǒng)之間的解耦 54

2.4.2 使用Apache開源的ActiveMQ實現(xiàn)異步調用 55

2.4.3 使用阿里開源的RocketMQ實現(xiàn)互聯(lián)網(wǎng)場景下的流量消峰 61

2.4.4 基于MQ方案實現(xiàn)流量消峰的一些典型案例 72

2.5 本章小結 75

第3章 分布式配置管理服務案例 76

3.1 本地配置 77

3.1.1 將配置信息耦合在業(yè)務代碼中 77

3.1.2 將配置信息配置在配置文件中 79

3.2 集中式資源配置需求 82

3.2.1 分布式一致性協(xié)調服務ZooKeeper簡介 83

3.2.2 ZooKeeper的下載與集群安裝 84

3.2.3 ZooKeeper的基本使用技巧 86

3.2.4 基于ZooKeeper實現(xiàn)分布式配置管理平臺方案 87

3.2.5 從配置中心獲取Spring的Bean定義實現(xiàn)Bean動態(tài)注冊 93

3.2.6 容災方案 95

3.2.7 使用淘寶Diamond實現(xiàn)分布式配置管理服務 96

3.2.8 Diamond與ZooKeeper的細節(jié)差異 101

3.2.9 使用百度Disconf實現(xiàn)分布式配置管理服務 102

3.3 本章小結 110

第4章 大促場景下熱點數(shù)據(jù)的讀/寫優(yōu)化案例 111

4.1 緩存技術簡介 112

4.1.1 使用Ehcache實現(xiàn)數(shù)據(jù)緩存 114

4.1.2 LocalCache存在的弊端 116

4.1.3 神秘的off-heap技術 117

4.2 高性能分布式緩存Redis簡介 120

4.2.1 使用Jedis客戶端操作Redis 121

4.2.2 使用Redis集群實現(xiàn)數(shù)據(jù)水平化存儲 122

4.3 同一熱賣商品高并發(fā)讀需求 124

4.3.1 Redis集群多寫多讀方案 125

4.3.2 保障多寫時的數(shù)據(jù)一致性 126

4.3.3 LocalCache結合Redis集群的多級Cache方案 128

4.3.4 實時熱點自動發(fā)現(xiàn)方案 130

4.4 同一熱賣商品高并發(fā)寫需求 132

4.4.1 InnoDB行鎖引起數(shù)據(jù)庫TPS下降 132

4.4.2 在Redis中扣減熱賣商品庫存方案 134

4.4.3 熱賣商品庫存扣減優(yōu)化方案 138

4.4.4 控制單機并發(fā)寫流量方案 141

4.4.5 使用阿里開源的AliSQL數(shù)據(jù)庫提升秒殺場景性能 142

4.5 本章小結 148

第5章 數(shù)據(jù)庫分庫分表案例 149

5.1 關系型數(shù)據(jù)庫的架構演變 150

5.1.1 數(shù)據(jù)庫讀寫分離 150

5.1.2 數(shù)據(jù)庫垂直分庫 151

5.1.3 數(shù)據(jù)庫水平分庫與水平分表 152

5.1.4 MySQL Sharding與MySQL Cluster的區(qū)別 153

5.2 Sharding中間件 154

5.2.1 常見的 Sharding中間件對比 155

5.2.2 Shark簡介 156

5.2.3 Shark的架構模型 157

5.2.4 使用Shark實現(xiàn)分庫分表后的數(shù)據(jù)路由任務 159

5.2.5 分庫分表后所帶來的影響 166

5.2.6 多機SequenceID解決方案 167

5.2.7 使用Solr滿足多維度的復雜條件查詢 170

5.2.8 關于分布式事務 172

5.3 數(shù)據(jù)庫的HA方案 173

5.3.1 基于配置中心實現(xiàn)主從切換 174

5.3.2 基于Keepalived實現(xiàn)主從切換 176

5.3.3 保障主從切換過程中的數(shù)據(jù)一致性 179

5.4 訂單業(yè)務冗余表需求 180

5.4.1 冗余表的實現(xiàn)方案 181

5.4.2 保障冗余表的數(shù)據(jù)一致性 183

5.5 本章小結 186

后記 187

使用說明

1、下載并解壓,得出pdf文件

2、如果打不開本文件,請務必下載pdf閱讀器

3、安裝后,在打開解壓得出的pdf文件

4、雙擊進行閱讀試讀

收起介紹展開介紹
  • 下載地址
人人都是架構師:分布式系統(tǒng)架構落地與瓶頸突破 高翔龍 pdf掃描版

有問題? 點此報錯

發(fā)表評論

0條評論