第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