第1章 麵嚮服務的體係架構(SOA) 1
本章主要介紹和解決以下問題,這些也是全書的基礎:
HTTP協議的工作方式與HTTP網絡協議棧的結構。
如何實現基於HTTP協議和TCP協議的RPC調用,它們之間有何差彆,分彆適應何種場景。
如何實現服務的動態注冊和路由,以及軟負載均衡的實現。
1.1 基於TCP協議的RPC 3
1.1.1 RPC名詞解釋 3
1.1.2 對象的序列化 4
1.1.3 基於TCP協議實現RPC 6
1.2 基於HTTP協議的RPC 9
1.2.1 HTTP協議棧 9
1.2.2 HTTP請求與響應 15
1.2.3 通過HttpClient發送HTTP請求 16
1.2.4 使用HTTP協議的優勢 17
1.2.5 JSON和XML 18
1.2.6 RESTful和RPC 20
1.2.7 基於HTTP協議的RPC的實現 22
1.3 服務的路由和負載均衡 30
1.3.1 服務化的演變 30
1.3.2 負載均衡算法 33
1.3.3 動態配置規則 39
1.3.4 ZooKeeper介紹與環境搭建 40
1.3.5 ZooKeeper API使用簡介 43
1.3.6 zkClient的使用 47
1.3.7 路由和負載均衡的實現 50
1.4 HTTP服務網關 54
第2章 分布式係統基礎設施 58
本章主要介紹和解決如下問題:
分布式緩存memcache的使用及分布式策略,包括Hash算法的選擇。
常見的分布式係統存儲解決方案,包括MySQL的分布式擴展、HBase的API及使用場景、Redis的使用等。
如何使用分布式消息係統ActiveMQ來降低係統之間的耦閤度,以及進行應用間的通信。
垂直化的搜索引擎在分布式係統中的使用,包括搜索引擎的基本原理、Lucene詳細的使用介紹,以及基於Lucene的開源搜索引擎工具Solr的使用。
2.1 分布式緩存 60
2.1.1 memcache簡介及安裝 60
2.1.2 memcache API與分布式 64
2.1.3 分布式session 69
2.2 持久化存儲 71
2.2.1 MySQL擴展 72
2.2.2 HBase 80
2.2.3 Redis 91
2.3 消息係統 95
2.3.1 ActiveMQ & JMS 96
2.4 垂直化搜索引擎 104
2.4.1 Lucene簡介 105
2.4.2 Lucene的使用 108
2.4.3 Solr 119
2.5 其他基礎設施 125
第3章 互聯網安全架構 126
本章主要介紹和解決如下問題:
常見的Web攻擊手段和防禦方法,如XSS、CRSF、SQL注入等。
常見的一些安全算法,如數字摘要、對稱加密、非對稱加密、數字簽名、數字證書等。
如何采用摘要認證方式防止信息篡改、通過數字簽名驗證通信雙方的閤法性,以及通過HTTPS協議保障通信過程中數據不被第三方監聽和截獲。
在開放平颱體係下,OAuth協議如何保障ISV對數據的訪問是經過授權的閤法行為。
3.1 常見的Web攻擊手段 128
3.1.1 XSS攻擊 128
3.1.2 CRSF攻擊 130
3.1.3 SQL注入攻擊 133
3.1.4 文件上傳漏洞 139
3.1.5 DDoS攻擊 146
3.1.6 其他攻擊手段 149
3.2 常用的安全算法 149
3.2.1 數字摘要 149
3.2.2 對稱加密算法 155
3.2.3 非對稱加密算法 158
3.2.4 數字簽名 162
3.2.5 數字證書 166
3.3 摘要認證 185
3.3.1 為什麼需要認證 185
3.3.2 摘要認證的原理 187
3.3.3 摘要認證的實現 188
3.4 簽名認證 192
3.4.1 簽名認證的原理 192
3.4.2 簽名認證的實現 193
3.5 HTTPS協議 200
3.5.1 HTTPS協議原理 200
3.5.2 SSL/TLS 201
3.5.3 部署HTTPS Web 208
3.6 OAuth協議 215
3.6.1 OAuth的介紹 215
3.6.2 OAuth授權過程 216
第4章 係統穩定性 218
本章主要介紹和解決如下問題:
常用的在綫日誌分析命令的使用和日誌分析腳本的編寫,如cat、grep、wc、less等命令的使用,以及awk、shell腳本的編寫。
如何進行集群的監控,包括監控指標的定義、心跳檢測、容量評估等。
如何保障高並發係統的穩定運行,如采用流量控製、依賴管理、服務分級、開關等策略,以及介紹如何設計高並發係統。
如何優化應用的性能,包括前端優化、Java程序優化、數據庫查詢優化等。
如何進行Java應用故障的在綫排查,包括一係列排查工具的使用,以及一些實際案例的介紹等。
4.1 在綫日誌分析 220
4.1.1 日誌分析常用命令 220
4.1.2 日誌分析腳本 230
4.2 集群監控 239
4.2.1 監控指標 239
4.2.2 心跳檢測 247
4.2.3 容量評估及應用水位 252
4.3 流量控製 255
4.3.1 流量控製實施 255
4.3.2 服務穩定性 260
4.3.3 高並發係統設計 265
4.4 性能優化 277
4.4.1 如何尋找性能瓶頸 277
4.4.2 性能測試工具 285
4.4.3 性能優化措施 292
4.5 Java應用故障的排查 314
4.5.1 常用的工具 314
4.5.2 典型案例分析 331
第5章 數據分析 337
本章主要介紹和解決如下問題:
分布式係統中日誌收集係統的架構。
如何通過Storm進行實時的流式數據分析。
如何通過Hadoop進行離綫數據分析,通過Hive建立數據倉庫。
如何將關係型數據庫中存儲的數據導入HDFS,以及從HDFS中將數據導入關係型數據庫。
如何將分析好的數據通過圖形展示給用戶。
5.1 日誌收集 339
5.1.1 inotify機製 339
5.1.2 ActiveMQ-CPP 343
5.1.3 架構和存儲 359
5.1.4 Chukwa 362
5.2 離綫數據分析 369
5.2.1 Hadoop項目簡介 370
5.2.2 Hadoop環境搭建 374
5.2.3 MapReduce編寫 384
5.2.4 Hive使用 389
5.3 流式數據分析 403
5.3.1 Storm的介紹 404
5.3.2 安裝部署Storm 407
5.3.3 Storm的使用 418
5.4 數據同步 422
5.4.1 離綫數據同步 423
5.4.2 實時數據同步 429
5.5 數據報錶 431
5.5.1 數據報錶能提供什麼 431
5.5.2 報錶工具Highcharts 432
參考文獻 445
· · · · · · (
收起)
《大型分布式網站架構設計與實踐》主要介紹瞭大型分布式網站架構所涉及的一些技術細節,包括SOA架構的實現、互聯網安全架構、構建分布式網站所依賴的基礎設施、係統穩定性保障和海量數據分析等內容;深入地講述瞭大型分布式網站架構設計的核心原理,並通過一些架構設計的典型案例,幫助讀者瞭解大型分布式網站設計的一些常見場景及遇到的問題。
作者結閤自己在阿裏巴巴及淘寶網的實際工作經曆展開論述。《大型分布式網站架構設計與實踐》既可供初學者學習,幫助讀者瞭解大型分布式網站的架構,以及解決問題的思路和方法,也可供業界同行參考,給日常工作帶來啓發。