人人都是架構師:分散式系統架構落地與瓶頸突破

人人都是架構師:分散式系統架構落地與瓶頸突破

《人人都是架構師:分散式系統架構落地與瓶頸突破》一書作者高翔龍,電子工業出版社2017年5月出版

基本介紹

  • 書名:人人都是架構師:分散式系統架構落地與瓶頸突破
  • 作者:高翔龍
  • ISBN:978-7-121-31238-0
  • 頁數:200
  • 定價:69.00
  • 出版社:電子工業出版社
  • 出版時間:2017年5月
  • 開本:16
內容提要,目錄,

內容提要

《人人都是架構師:分散式系統架構落地與瓶頸突破》並沒有過多渲染系統架構的理論知識,而是切切實實站在開發一線角度,為各位讀者詮釋了大型網站在架構演變過程中出現一系列技術難題時的解決方案。《人人都是架構師:分散式系統架構落地與瓶頸突破》首先從分散式服務案例開始介紹,重點為大家講解了大規模服務化場景下企業應該如何實施服務治理;然後在大流量限流/消峰案例中,筆者為大家講解了應該如何有效地對流量實施管制,避免大流量對系統產生較大衝擊,確保核心業務的穩定運行;接著筆者為大家講解了分散式配置管理服務;之後的幾章,筆者不僅為大家講解了秒殺、限時搶購場景下熱點數據的讀/寫最佳化案例,還為大家講解了資料庫實施分庫分表改造後所帶來的一系列影響的解決方案。
《人人都是架構師:分散式系統架構落地與瓶頸突破》適用於任何對分散式系統架構感興趣的架構師、開發人員以及運維人員。相信閱讀《人人都是架構師:分散式系統架構落地與瓶頸突破》你將會有知其然和知其所以然的暢快感。

目錄

第1章 分散式服務案例 1
1.1 分散式系統的架構演變過程 2
1.1.1 單機系統 3
1.1.2 集群架構 4
1.1.3 拆系統之業務垂直化 6
1.1.4 為什麼需要實現服務化架構 8
1.1.5 服務拆分粒度之微服務 10
1.2 系統服務化需求 11
1.2.1 服務化與RPC協定 11
1.2.2 使用阿里分散式服務框架Dubbo實現服務化 12
1.2.3 警惕Dubbo因逾時和重試引起的系統雪崩 16
1.2.4 服務治理方案 18
1.2.5 關於服務化後的分散式事務問題 20
1.3 分散式調用跟蹤系統需求 21
1.3.1 Google的Dapper論文簡介 22
1.3.2 基於Dubbo實現分散式調用跟蹤系統方案 25
1.3.3採樣率方案 35
1.4 本章小結 37
第2章 大流量限流/消峰案例 38
2.1 分散式系統為什麼需要進行流量管制 39
2.2 限流的具體方案 42
2.2.1 常見的限流算法 43
2.2.2 使用Google的Guava實現平均速率限流 45
2.2.3 使用Nginx實現接入層限流 48
2.2.4 使用計數器算法實現商品搶購限流 49
2.3 基於時間分片的消峰方案 51
2.3.1 活動分時段進行實現消峰 52
2.3.2 通過答題驗證實現消峰 52
2.4 異步調用需求 53
2.4.1 使用MQ實現系統之間的解耦 54
2.4.2 使用Apache開源的ActiveMQ實現異步調用 55
2.4.3 使用阿里開源的RocketMQ實現網際網路場景下的流量消峰 61
2.4.4 基於MQ方案實現流量消峰的一些典型案例 72
2.5 本章小結 75
第3章 分散式配置管理服務案例 76
3.1 本地配置 77
3.1.1 將配置信息耦合在業務代碼中 77
3.1.2 將配置信息配置在配置檔案中 79
3.2 集中式資源配置需求 82
3.2.1 分散式一致性協調服務ZooKeeper簡介 83
3.2.2 ZooKeeper的下載與集群安裝 84
3.2.3 ZooKeeper的基本使用技巧 86
3.2.4 基於ZooKeeper實現分散式配置管理平台方案 87
3.2.5 從配置中心獲取Spring的Bean定義實現Bean動態註冊 93
3.2.6 容災方案 95
3.2.7 使用淘寶Diamond實現分散式配置管理服務 96
3.2.8 Diamond與ZooKeeper的細節差異 101
3.2.9 使用百度Disconf實現分散式配置管理服務 102
3.3 本章小結 110
第4章 大促場景下熱點數據的讀/寫最佳化案例 111
4.1 快取技術簡介 112
4.1.1 使用Ehcache實現數據快取 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集群實現數據水平化存儲 122
4.3 同一熱賣商品高並發讀需求 124
4.3.1 Redis集群多寫多讀方案 125
4.3.2 保障多寫時的數據一致性 126
4.3.3 LocalCache結合Redis集群的多級Cache方案 128
4.3.4 實時熱點自動發現方案 130
4.4 同一熱賣商品高並發寫需求 132
4.4.1 InnoDB行鎖引起資料庫TPS下降 132
4.4.2 在Redis中扣減熱賣商品庫存方案 134
4.4.3 熱賣商品庫存扣減最佳化方案 138
4.4.4 控制單機並發寫流量方案 141
4.4.5 使用阿里開源的AliSQL資料庫提升秒殺場景性能 142
4.5 本章小結 148
第5章 資料庫分庫分表案例 149
5.1 關係型資料庫的架構演變 150
5.1.1 資料庫讀寫分離 150
5.1.2 資料庫垂直分庫 151
5.1.3 資料庫水平分庫與水平分表 152
5.1.4 MySQL Sharding與MySQL Cluster的區別 153
5.2 Sharding中間件 154
5.2.1 常見的Sharding中間件對比 155
5.2.2 Shark簡介 156
5.2.3 Shark的架構模型 157
5.2.4 使用Shark實現分庫分表後的數據路由任務 159
5.2.5 分庫分表後所帶來的影響 166
5.2.6 多機SequenceID解決方案 167
5.2.7 使用Solr滿足多維度的複雜條件查詢 170
5.2.8 關於分散式事務 172
5.3 資料庫的HA方案 173
5.3.1 基於配置中心實現主從切換 174
5.3.2 基於Keepalived實現主從切換 176
5.3.3 保障主從切換過程中的數據一致性 179
5.4 訂單業務冗餘表需求 180
5.4.1 冗餘表的實現方案 181
5.4.2 保障冗餘表的數據一致性 183
5.5 本章小結 186
後記 187

相關詞條

熱門詞條

聯絡我們