大型分布式網站架構設計與實踐目錄
時間:2023-07-05 10:03:01 | 來源:營銷百科
時間:2023-07-05 10:03:01 來源:營銷百科
大型分布式網站架構設計與實踐目錄:第1章 面向服務的體系架構(SOA) 1
本章主要介紹和解決以下問題,這些也是全書的基礎:
HTTP協(xié)議的工作方式與HTTP網絡協(xié)議棧的結構。
如何實現(xiàn)基于HTTP協(xié)議和TCP協(xié)議的RPC調用,它們之間有何差別,分別適應何種場景。
如何實現(xiàn)服務的動態(tài)注冊和路由,以及軟負載均衡的實現(xiàn)。
1.1 基于TCP協(xié)議的RPC 3
1.1.1 RPC名詞解釋 3
1.1.2 對象的序列化 4
1.1.3 基于TCP協(xié)議實現(xiàn)RPC 6
1.2 基于HTTP協(xié)議的RPC 9
1.2.1 HTTP協(xié)議棧 9
1.2.2HTTP請求與響應 15
1.2.3 通過HttpClient發(fā)送HTTP請求 16
1.2.4 使用HTTP協(xié)議的優(yōu)勢 17
1.2.5 JSON和XML 18
1.2.6 RESTful和RPC 20
1.2.7 基于HTTP協(xié)議的RPC的實現(xiàn) 22
1.3 服務的路由和負載均衡 30
1.3.1 服務化的演變 30
1.3.2 負載均衡算法 33
1.3.3 動態(tài)配置規(guī)則 39
1.3.4 ZooKeeper介紹與環(huán)境搭建 40
1.3.5 ZooKeeper API使用簡介 43
1.3.6 zkClient的使用 47
1.3.7 路由和負載均衡的實現(xiàn) 50
1.4 HTTP服務網關 54
第2章 分布式系統(tǒng)基礎設施 58
本章主要介紹和解決如下問題:
分布式緩存memcache的使用及分布式策略,包括Hash算法的選擇。
常見的分布式系統(tǒng)存儲解決方案,包括MySQL的分布式擴展、HBase的API及使用場景、Redis的使用等。
如何使用分布式消息系統(tǒng)ActiveMQ來降低系統(tǒng)之間的耦合度,以及進行應用間的通信。
垂直化的搜索引擎在分布式系統(tǒng)中的使用,包括搜索引擎的基本原理、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 消息系統(tǒng) 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章 互聯(lián)網安全架構 126
本章主要介紹和解決如下問題:
常見的Web攻擊手段和防御方法,如XSS、CRSF、SQL注入等。
常見的一些安全算法,如數(shù)字摘要、對稱加密、非對稱加密、數(shù)字簽名、數(shù)字證書等。
如何采用摘要認證方式防止信息篡改、通過數(shù)字簽名驗證通信雙方的合法性,以及通過HTTPS協(xié)議保障通信過程中數(shù)據不被第三方監(jiān)聽和截獲。
在開放平臺體系下,OAuth協(xié)議如何保障ISV對數(shù)據的訪問是經過授權的合法行為。
3.1 常見的Web攻擊手段 128
3.1.1 XSS攻擊 128
3.1.2 CRSF攻擊 130
3.1.3SQL注入攻擊133
3.1.4 文件上傳漏洞 139
3.1.5 DDoS攻擊 146
3.1.6 其他攻擊手段 149
3.2 常用的安全算法 149
3.2.1 數(shù)字摘要 149
3.2.2對稱加密算法155
3.2.3非對稱加密算法158
3.2.4 數(shù)字簽名 162
3.2.5 數(shù)字證書 166
3.3 摘要認證 185
3.3.1 為什么需要認證 185
3.3.2 摘要認證的原理 187
3.3.3 摘要認證的實現(xiàn) 188
3.4 簽名認證 192
3.4.1 簽名認證的原理 192
3.4.2 簽名認證的實現(xiàn) 193
3.5 HTTPS協(xié)議 200
3.5.1 HTTPS協(xié)議原理 200
3.5.2 SSL/TLS 201
3.5.3 部署HTTPS Web 208
3.6 OAuth協(xié)議 215
3.6.1 OAuth的介紹 215
3.6.2 OAuth授權過程 216
第4章 系統(tǒng)穩(wěn)定性 218
本章主要介紹和解決如下問題:
常用的在線日志分析命令的使用和日志分析腳本的編寫,如cat、grep、wc、less等命令的使用,以及awk、shell腳本的編寫。
如何進行集群的監(jiān)控,包括監(jiān)控指標的定義、心跳檢測、容量評估等。
如何保障高并發(fā)系統(tǒng)的穩(wěn)定運行,如采用流量控制、依賴管理、服務分級、開關等策略,以及介紹如何設計高并發(fā)系統(tǒng)。
如何優(yōu)化應用的性能,包括前端優(yōu)化、Java程序優(yōu)化、數(shù)據庫查詢優(yōu)化等。
如何進行Java應用故障的在線排查,包括一系列排查工具的使用,以及一些實際案例的介紹等。
4.1 在線日志分析 220
4.1.1 日志分析常用命令 220
4.1.2 日志分析腳本 230
4.2 集群監(jiān)控 239
4.2.1 監(jiān)控指標 239
4.2.2 心跳檢測 247
4.2.3 容量評估及應用水位 252
4.3 流量控制 255
4.3.1 流量控制實施 255
4.3.2 服務穩(wěn)定性 260
4.3.3 高并發(fā)系統(tǒng)設計 265
4.4 性能優(yōu)化 277
4.4.1 如何尋找性能瓶頸 277
4.4.2 性能測試工具 285
4.4.3 性能優(yōu)化措施 292
4.5 Java應用故障的排查 314
4.5.1 常用的工具 314
4.5.2 典型案例分析 331
第5章 數(shù)據分析 337
本章主要介紹和解決如下問題:
分布式系統(tǒng)中日志收集系統(tǒng)的架構。
如何通過Storm進行實時的流式數(shù)據分析。
如何通過Hadoop進行離線數(shù)據分析,通過Hive建立數(shù)據倉庫。
如何將關系型數(shù)據庫中存儲的數(shù)據導入HDFS,以及從HDFS中將數(shù)據導入關系型數(shù)據庫。
如何將分析好的數(shù)據通過圖形展示給用戶。
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 離線數(shù)據分析 369
5.2.1 Hadoop項目簡介 370
5.2.2 Hadoop環(huán)境搭建 374
5.2.3 MapReduce編寫 384
5.2.4 Hive使用 389
5.3 流式數(shù)據分析 403
5.3.1 Storm的介紹 404
5.3.2 安裝部署Storm 407
5.3.3 Storm的使用 418
5.4 數(shù)據同步 422
5.4.1 離線數(shù)據同步 423
5.4.2 實時數(shù)據同步 429
5.5 數(shù)據報表 431
5.5.1 數(shù)據報表能提供什么 431
5.5.2 報表工具Highcharts 432
參考文獻 445