高可用架構(第1卷)

高可用架構(第1卷)

《高可用架構(第1卷)》 一書作者高可用架構社區,電子工業出版社2017年11月出版

內容提要

《高可用架構(第1卷)》由數十位一線架構師的實踐與經驗凝結而成,選材兼顧技術性、前瞻性與專業深度。各技術焦點,均由極具代表性的領域專家或實踐先行者撰文深度剖析,共同組成“高可用”的全局視野與領先高度,內容包括精華案例、分散式原理、電商架構等熱門專題,及雲計算、容器、運維、大數據、安全等重點方向。不僅架構師可以從中受益,其他IT、網際網路技術從業者同樣可以得到提升。

目錄

第1 章 高可用架構案例精選 1

郭斯傑/1.1 Twitter 高性能分散式日誌系統架構解析 1

1.1.1 為什麼需要分散式日誌. 1

1.1.2 Twitter 如何考慮這個問題 4

1.1.3 基於Apache BookKeeper 構建DistributeLog 5

1.1.4 DistributeLog 案例分享13

1.1.5 疑問與解惑.13

顏國平/1.2 騰訊基於用戶畫像大數據的電商防刷架構.16

1.2.1 背景介紹16

1.2.2 黑產現狀介紹16

1.2.3 騰訊內部防刷架構18

1.2.4 騰訊大數據收集維度.20

1.2.5 騰訊大數據處理平台——魔方21

1.2.6 疑問與解惑.24

王淵命/1.3 如何設計類似微信的多終端數據同步協定:Grouk 實踐分享.26

1.3.1 移動網際網路時代多終端數據同步面臨的挑戰26

1.3.2 多終端數據同步與傳統訊息投遞協定的差異27

1.3.3 Grouk 在多終端數據同步協定上的探索實踐.28

1.3.4 疑問與解惑.32

周 洋/1.4 如何實現支持數億用戶的長連訊息系統:Golang 高並發案例33

1.4.1 關於push 系統對比與性能指標的討論.33

1.4.2 訊息系統架構介紹35

1.4.3 哪些因素決定推送系統的效果37

1.4.4 GO 語言開發問題與解決方案.38

1.4.5 訊息系統的運維及測試41

1.4.6 疑問與解惑.42

唐福林/1.5 雪球在股市風暴下的高可用架構改造分享.46

1.5.1 雪球公司的介紹46

1.5.2 雪球當前總體架構47

1.5.3 雪球架構最佳化歷程48

1.5.4 關於架構最佳化的總結和感想.53

1.5.5 疑問與解惑.54

麥俊生/1.6 億級短視頻社交美拍架構實戰59

1.6.1 短視頻市場的發展59

1.6.2 美拍的發展.60

1.6.3 短視頻所面臨的架構問題61

1.6.4 為支持億級用戶,美拍架構所做的一些改進62

1.6.5 後續發展68

劉道儒/1.7 微博“異地多活”部署經驗談69

1.7.1 微博異地多活建設歷程69

1.7.2 微博異地多活面臨的挑戰70

1.7.3 異地多活的最佳實踐.73

1.7.4 異地多活的新方向74

孫宇聰/1.8 來自Google 的高可用架構理念與實踐75

1.8.1 決定可用性的兩大因素76

1.8.2 高可用性方案77

1.8.3 可用性7 級圖表80

1.8.4 疑問與解惑.81

那 誰/1.9 深入理解同步/異步與阻塞/非阻塞區別84

1.9.1 同步與異步.84

1.9.2 阻塞與非阻塞85

1.9.3 與多路復用I/O 的聯繫86

第2 章 高可用架構原理與分散式實踐.88

黃東旭/2.1 Codis 作者細說分散式Redis 架構設計88

2.1.1 Redis、Redis Cluster 和Codis88

2.1.2 我們更愛一致性90

2.1.3 Codis 在生產環境中的使用經驗和坑91

2.1.4 分散式資料庫和分散式架構.94

2.1.5 疑問與解惑.95

霍泰穩/2.2 給你介紹一個不一樣的矽谷.98

2.2.1 Uber .98

2.2.2 Coursera.99

2.2.3 Airbnb102

2.2.4 矽谷行帶給我的一些影響106

2.2.5 疑問與解惑106

金自翔/2.3 解耦的藝術——大型網際網路業務系統的外掛程式化改造110

2.3.1 外掛程式化.110

2.3.2 如何處理用戶互動115

2.3.3 如何處理數據.115

2.3.4 總結116

沈 劍/2.4 從零開始搭建高可用IM 系統117

2.4.1 什麼是IM117

2.4.2 協定設計118

2.4.3 WEB 聊天室.122

2.4.4 IM 典型業務場景126

2.4.5 疑問與解惑126

陳宗志/2.5 360 分散式存儲系統Bada 的架構設計和套用.129

2.5.1 主要套用場景.129

2.5.2 整體架構130

2.5.3 主要模組131

2.5.4 數據分布策略.132

2.5.5 請求流程133

2.5.6 多機房架構134

2.5.7 FAQ138

2.5.8 疑問與解惑139

張 亮/2.6 新一代分散式任務調度框架:噹噹Elastic-Job 開源項目

的10 項特性143

2.6.1 為什麼需要作業(定時任務).143

2.6.2 噹噹之前使用的作業系統144

2.6.3 Elastic-Job 的來歷.144

2.6.4 Elastic-Job 包含的功能145

2.6.5 Elastic-Job 的部署和使用.146

2.6.6 對開源產品的開發理念.147

2.6.7 未來展望148

2.6.8 疑問與解惑149

付海軍/2.7 網際網路DSP 廣告系統架構及關鍵技術解析152

2.7.1 優秀DSP 系統的特點152

2.7.2 程式化購買的特點153

2.7.3 線上廣告的核心問題156

2.7.4 線上廣告的挑戰.156

2.7.5 DSP 系統架構.157

2.7.6 RTB 投放引擎的架構.158

2.7.7 DMP160

2.7.8 廣告系統DMP 數據處理的架構.160

2.7.9 用戶畫像的方法.162

2.7.10 廣告行業的反作弊.165

2.7.11 P2P 流量互刷166

2.7.12 CPS 引流作弊167

2.7.13 疑問與解惑168

王衛華/2.8 億級規模的Elasticsearch 最佳化實戰170

2.8.1 索引性能(Index Performance) .170

2.8.2 查詢性能(Query Perofrmance) 171

2.8.3 其他173

2.8.4 疑問與解惑174

楊衛華/2.9 微博分散式存儲考試題:案例講解及作業精選179

2.9.1 訪問場景179

2.9.2 設計180

2.9.3 sharding 策略180

2.9.4 案例精選181

李 凱/2.10 架構師需要了解的Paxos 原理、歷程及實戰.184

2.10.1 資料庫高可用性難題184

2.10.2 Paxos 協定簡單回顧.185

2.10.3 Basic Paxos 同步日誌的理論模型186

2.10.4 Multi Paxos 的實際套用.187

2.10.5 依賴時鐘誤差的變種Paxos 選主協定簡單分析190

2.10.6 疑問與解惑191

溫 銘/2.11 OpenResty 的現在和未來193

2.11.1 OpenResty 是什麼,適合什麼場景下使用.193

2.11.2 某安全公司服務端技術選型的標準194

2.11.3 如何在項目中引入新技術.196

2.11.4 如何入門以及學習的正確方法197

2.11.5 OpenResty 中的測試和調試.199

2.11.6 NginScript 是否會替代OpenResty201

2.11.7 未來重點解決的問題和新增特性.202

2.11.8 開源社區建設203

2.11.9 疑問與解惑.203

第3 章 電商架構熱點專題.205

張開濤/3.1 億級商品詳情頁架構演進技術解密.205

3.1.1 商品詳情頁205

3.1.2 商品詳情頁發展史209

3.1.3 遇到的一些問題和解決方案220

3.1.4 總結228

3.1.5 疑問與解惑229

楊 超/3.2 大促系統全流量壓測及穩定性保證——京東交易架構.232

3.2.1 交易系統的三個階段232

3.2.2 交易系統的三層結構233

3.2.3 交易系統的訪問特徵234

3.2.4 應對大促的第1 步:全鏈路全流量線上壓測.234

3.2.5 應對大促的第2 步:根據壓力表現進行調優.237

3.2.6 異步和異構240

3.2.7 應對大促的第3 步:分流與限流242

3.2.8 應對大促的第4 步:容災降級.244

3.2.9 應對大促的第5 步:完善監控.245

3.2.10 疑問與解惑246

呂 毅/3.3 秒殺系統架構解密與防刷設計.248

3.3.1 搶購業務介紹.248

3.3.2 具體搶購項目中的設計.249

3.3.3 如何解耦前後端壓力250

3.3.4 如何保證商品庫的庫存可靠252

3.3.5 如何與第三方多方對賬.254

3.3.6 項目總結255

3.3.7 疑問與解惑255

王富平/3.4 Lambda 架構與推薦在電商網站實踐.257

3.4.1 Lambda 架構257

3.4.2 1 號店推薦系統實踐260

3.4.3 Lambda 的未來262

3.4.4 思考263

3.4.5 疑問與解惑263

楊 碩/3.5 某公司線上真實流量壓測工具構建.265

3.5.1 為什麼要開發一個通用的壓測工具265

3.5.2 常見的壓測工具.266

3.5.3 構建自己的壓測工具266

3.5.4 疑問與解惑271

第4 章 容器與雲計算.273

陳 飛/4.1 微博基於Docker 容器的混合雲遷移實戰.273

4.1.1 為什麼要採用混合雲的架構273

4.1.2 跨雲的資源管理與調度.275

4.1.3 容器的編排與服務發現.278

4.1.4 混合雲監控體系.284

4.1.5 前進路上遇到的那些坑.286

4.1.6 疑問與解惑286

高 磊/4.2 網際網路金融創業公司Docker 實踐287

4.2.1 背景介紹287

4.2.2 容器選型287

4.2.3 套用遷移288

4.2.4 彈性擴容291

4.2.5 未來規劃295

4.2.6 疑問與解惑295

高永超/4.3 使用開源Calico 構建Docker 多租戶網路.297

4.3.1 PaaS 平台的網路需求.297

4.3.2 使用Calico 實現Docker 的跨伺服器通訊.298

4.3.3 利用Profile 實現ACL301

4.3.4 性能測試306

4.3.5 Calico 的發展308

4.3.6 疑問與解惑309

彭哲夫/4.4 解析Docker 在芒果TV 的實踐之路310

4.4.1 豆瓣時期310

4.4.2 芒果TV 的Nebulium Engine .311

4.4.3 Project Eru .312

4.4.4 細節313

4.4.5 網路314

4.4.6 存儲315

4.4.7 Scale316

4.4.8 資源分配和集群調度316

4.4.9 服務發現和安全.317

4.4.10 實例317

4.4.11 總結318

4.4.12 疑問與解惑318

王關勝/4.5 微博基於Docker 的混合雲平台設計與實踐323

4.5.1 微博的業務場景及混合雲背景.323

4.5.2 三大基礎設施助力微博混合雲.326

4.5.3 微博混合雲DCP 系統設計核心:自動化、彈性調度328

4.5.4 引入阿里雲作為第3 機房,實現彈性調度架構330

4.5.5 大規模集群操作自動化.331

4.5.6 不怕峰值事件.332

第5 章 運維保障333

王 康/5.1 360 如何用QConf 搞定兩萬以上伺服器的配置管理.333

5.1.1 設計初衷333

5.1.2 整體認識334

5.1.3 架構介紹335

5.1.4 QConf 服務端336

5.1.5 QConf 客戶端336

5.1.6 QConf 管理端340

5.1.7 其他341

5.1.8 疑問與解惑343

尤 勇/5.2 深度剖析開源分散式監控CAT347

5.2.1 背景介紹347

5.2.2 整體設計348

5.2.3 客戶端設計349

5.2.4 服務端設計352

5.2.5 總結感悟357

楊尚剛/5.3 單表60 億記錄等大數據場景的MySQL 最佳化和運維之道359

5.3.1 前言359

5.3.2 資料庫開發規範.360

5.3.3 資料庫運維規範.363

5.3.4 性能最佳化368

5.3.5 疑問與解惑375

秦 迪/5.4 微博在大規模、高負載系統問題排查方法379

5.4.1 背景379

5.4.2 排查方法及線索.379

5.4.3 總結384

5.4.4 疑問與解惑385

秦 迪/5.5 系統運維之為什麼每個團隊存在大量爛代碼387

5.5.1 寫爛代碼很容易.387

5.5.2 爛代碼終究是爛代碼388

5.5.3 重構不是萬能藥.392

5.5.4 寫好代碼很難.393

5.5.5 悲觀的結語394

秦 迪/5.6 系統運維之評價代碼優劣的方法395

5.6.1 什麼是好代碼.395

5.6.2 結語403

5.6.3 參考閱讀403

秦 迪/5.7 系統運維之如何應對爛代碼404

5.7.1 改善可維護性.404

5.7.2 改善性能與健壯性409

5.7.3 改善生存環境.412

5.7.4 個人感想414

第6 章 大數據與資料庫415

王 勁/6.1 某音樂公司的大數據實踐.415

6.1.1 什麼是大數據.415

6.1.2 某音樂公司大數據技術架構418

6.1.3 在大數據平台重構過程中踩過的坑425

6.1.4 後續的持續改進.430

王新春/6.2 實時計算在點評.431

6.2.1 實時計算在點評的使用場景431

6.2.2 實時計算在業界的使用場景432

6.2.3 點評如何構建實時計算平台433

6.2.4 Storm 基礎知識簡單介紹.434

6.2.5 如何保證業務運行的可靠性436

6.2.6 Storm 使用經驗分享438

6.2.7 關於計算框架的後續想法442

6.2.8 疑問與解惑442

王衛華/6.3 百姓網Elasticsearch 2.x 升級之路.446

6.3.1 Elasticsearch 2.x 變化446

6.3.2 升級之路448

6.3.3 最佳化或建議451

6.3.4 百姓之道452

6.3.5 後話:Elasticsearch 5.0453

6.3.6 升級2.x 版本成功,5.x 版本還會遠嗎454

董西成 張虔熙/6.4 Hadoop、HBase 年度回顧457

6.4.1 Hadoop 2015 技術發展457

6.4.2 HBase 2015 年技術發展460

6.4.3 疑問與解惑466

常 雷/6.5 解密Apache HAWQ——功能強大的SQL-on-Hadoop 引擎.469

6.5.1 HAWQ 基本介紹469

6.5.2 Apache HAWQ 系統架構.472

6.5.3 HAWQ 中短期規劃.479

6.5.4 貢獻到Apache HAWQ 社區479

6.5.5 疑問與解惑480

蕭少聰/6.6 PostgresSQL HA 高可用架構實戰.482

6.6.1 PostgreSQL 背景介紹.482

6.6.2 在PostgreSQL 下如何實現數據複製技術的HA 高可用集群483

6.6.3 Corosync+Pacemaker MS 模式介紹484

6.6.4 Corosync+Pacemaker M/S 環境配置485

6.6.5 Corosync+Pacemaker HA 基礎配置488

6.6.5 PostgreSQL Sync 模式當前的問題492

6.6.6 疑問與解惑492

王晶昱/6.7 從NoSQL 歷史看未來.495

6.7.1 前言495

6.7.2 1970 年:We have no SQL496

6.7.3 1980 年:Know SQL 497

6.7.4 2000 年:No SQL .502

6.7.5 2005 年:不僅僅是SQL 504

6.7.6 2013 年:No,SQL .505

6.7.7 阿里的技術選擇.505

6.7.8 疑問與解惑506

楊尚剛/6.8 MySQL 5.7 新特性大全和未來展望.508

6.8.1 提高運維效率的特性508

6.8.2 最佳化器Server 層改進.511

6.8.3 InnoDB 層最佳化513

6.8.4 未來發展517

6.8.5 運維經驗總結.518

6.8.6 疑問與解惑519

譚 政/6.9 大數據盤點之Spark 篇521

6.9.1 Spark 的特性以及功能521

6.9.2 Spark 在Hulu 的實踐.525

6.9.3 Spark 未來的發展趨勢528

6.9.4 參考文章530

6.9.5 疑問與解惑530

蕭少聰/6.10 從Postgres 95 到PostgreSQL 9.5:新版亮眼特性532

6.10.1 Postgres 95 介紹532

6.10.2 PostgresSQL 版本發展歷史533

6.10.3 PostgresSQL 9.5 的亮眼特性534

6.10.4 PostgresSQL 還可以做什麼544

6.10.5 疑問與解惑547

畢洪宇/6.11 MongoDB 2015 回顧:全新里程碑式的WiredTiger 存儲引擎551

6.11.1 存儲引擎的發展551

6.11.2 複製集改進.555

6.11.3 自動分片機制556

6.11.4 其他新特性介紹556

6.11.5 疑問與解惑.558

王曉偉/6.12 基於Xapian 的垂直搜尋引擎的構建分析561

6.12.1 垂直搜尋的套用場景561

6.12.2 技術選型.563

6.12.3 垂直搜尋的引擎架構564

6.12.4 垂直搜尋技術和業務細節.566

6.12.5 疑問與解惑568

第7 章 安全與網路572

郭 偉/7.1 揭秘DDoS 防護——騰訊雲大禹系統572

7.1.1 有關DDoS 簡介的問答.574

7.1.2 有關大禹系統簡介的問答575

7.1.3 有關大禹系統硬體防護能力的問答576

7.1.4 有關算法設計的問答577

7.1.5 大禹和其他產品、技術的區別.578

馮 磊 趙星宇/7.2 App 域名劫持之DNS 高可用——開源版

HttpDNS 方案詳解580

7.2.1 HttpDNSLib 庫組成.581

7.2.2 HttpDNS 互動流程582

7.2.3 代碼結構583

7.2.4 開發過程中的一些問題及應對.586

7.2.5 疑問與解惑593

馬 濤/7.3 CDN 對流媒體和套用分發的支持及最佳化595

7.3.1 CDN 系統工作原理.595

7.3.2 網路分發過程中ISP 的影響602

7.3.3 防盜鏈.603

7.3.4 內容分發系統的問題和應對思路604

7.3.5 P2P 穿牆打洞607

7.3.6 疑問與解惑609

馬 濤/7.4 HTTPS 環境使用第三方CDN 的證書難題與最佳實踐611

蔣海滔/7.5 網際網路主要安全威脅分析及應對方案613

7.5.1 網際網路Web 套用面臨的主要威脅613

7.5.2 威脅應對方案.616

7.5.3 疑問與解惑624

相關詞條

熱門詞條

聯絡我們