《大型分布式网站架构设计与实践》关键详细介绍了大中型分布式系统网站结构所涉及到的某些技术细节,包含SOA构架的保持、网络安全构架、搭建分布式系统平台网站所依靠的基础设施建设、系统软件可靠性确保和海量数据分析等內容;深层次地叙述了大中型分布式系统平台网站架构模式的关键基本原理,并根据某些架构模式的经典案例,协助用户掌握大中型分布式系统网站制作的某些普遍情景及碰到的难题。
创作者融合自身在*及*网的具体工作经验进行阐述。《大中型分布式系统平台网站架构模式与实践活动》既能够新手学习培训,协助用户掌握大中型分布式系统平台网站的构架,及其解决困难的构思和方式 ,也能够业内同行业参照,给日常事务产生启迪。
目录
- 第1章 面向服务的体系架构(SOA) 1
- 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
- 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
- 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
- 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
- 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