大型分布式网站架构设计与实践完整版
【书籍目录】
第1章 面向服务的体系架构(SOA)
本章主要介绍和解决以下问题,这些也是全书的基础:
HTTP协议的工作方式与HTTP网络协议栈的结构。
如何实现基于HTTP协议和TCP协议的RPC调用,它们之间有何差别,分别适应何种场景。
如何实现服务的动态注册和路由,以及软负载均衡的实现。
1.1 基于TCP协议的RPC
1.1.1 RPC名词解释
1.1.2 对象的序列化
1.1.3 基于TCP协议实现RPC
1.2 基于HTTP协议的RPC
1.2.1 HTTP协议栈
1.2.2 HTTP请求与响应
1.2.3 通过HttpClient发送HTTP请求
1.2.4 使用HTTP协议的优势
1.2.5 JSON和XML
1.2.6 RESTful和RPC
1.2.7 基于HTTP协议的RPC的实现
1.3 服务的路由和负载均衡
1.3.1 服务化的演变
1.3.2 负载均衡算法
1.3.3 动态配置规则
1.3.4 ZooKeeper介绍与环境搭建
1.3.5 ZooKeeper API使用简介
1.3.6 zkClient的使用
1.3.7 路由和负载均衡的实现
1.4 HTTP服务网关
第2章 分布式系统基础设施
本章主要介绍和解决如下问题:
分布式缓存memcache的使用及分布式策略,包括Hash算法的选择。
常见的分布式系统存储解决方案,包括MySQL的分布式扩展、HBase的API及使用场景、Redis的使用等。
如何使用分布式消息系统ActiveMQ来降低系统之间的耦合度,以及进行应用间的通信。
垂直化的搜索引擎在分布式系统中的使用,包括搜索引擎的基本原理、Lucene详细的使用介绍,以及基于Lucene的开源搜索引擎工具Solr的使用。
2.1 分布式缓存
2.1.1 memcache简介及安装
2.1.2 memcache API与分布式
2.1.3 分布式session
2.2 持久化存储
2.2.1 MySQL扩展
2.2.2 HBase
2.2.3 Redis
2.3 消息系统
2.3.1 ActiveMQ & JMS
2.4 垂直化搜索引擎
2.4.1 Lucene简介
2.4.2 Lucene的使用
2.4.3 Solr
2.5 其他基础设施
第3章 互联网安全架构
本章主要介绍和解决如下问题:
常见的Web攻击手段和防御方法,如XSS、CRSF、SQL注入等。
常见的一些安全算法,如数字摘要、对称加密、非对称加密、数字签名、数字证书等。
如何采用摘要认证方式防止信息篡改、通过数字签名验证通信双方的合法性,以及通过HTTPS协议保障通信过程中数据不被第三方监听和截获。
在开放平台体系下,OAuth协议如何保障ISV对数据的访问是经过授权的合法行为。
3.1 常见的Web攻击手段
3.1.1 XSS攻击
3.1.2 CRSF攻击
3.1.3 SQL注入攻击
3.1.4 文件上传漏洞
3.1.5 DDoS攻击
3.1.6 其他攻击手段
3.2 常用的安全算法
3.2.1 数字摘要
3.2.2 对称加密算法
3.2.3 非对称加密算法
3.2.4 数字签名
3.2.5 数字证书
3.3 摘要认证
3.3.1 为什么需要认证
3.3.2 摘要认证的原理
3.3.3 摘要认证的实现
3.4 签名认证
3.4.1 签名认证的原理
3.4.2 签名认证的实现
3.5 HTTPS协议
3.5.1 HTTPS协议原理
3.5.2 SSL/TLS
3.5.3 部署HTTPS Web
3.6 OAuth协议
3.6.1 OAuth的介绍
3.6.2 OAuth授权过程
第4章 系统稳定性
本章主要介绍和解决如下问题:
常用的在线日志分析命令的使用和日志分析脚本的编写,如cat、grep、wc、less等命令的使用,以及awk、shell脚本的编写。
如何进行集群的监控,包括监控指标的定义、心跳检测、容量评估等。
如何保障高并发系统的稳定运行,如采用流量控制、依赖管理、服务分级、开关等策略,以及介绍如何设计高并发系统。
如何优化应用的性能,包括前端优化、Java程序优化、数据库查询优化等。
如何进行Java应用故障的在线排查,包括一系列排查工具的使用,以及一些实际案例的介绍等。
4.1 在线日志分析
4.1.1 日志分析常用命令
4.1.2 日志分析脚本
4.2 集群监控
4.2.1 监控指标
4.2.2 心跳检测
4.2.3 容量评估及应用水位
4.3 流量控制
4.3.1 流量控制实施
4.3.2 服务稳定性
4.3.3 高并发系统设计
4.4 性能优化
4.4.1 如何寻找性能瓶颈
4.4.2 性能测试工具
4.4.3 性能优化措施
4.5 Java应用故障的排查
4.5.1 常用的工具
4.5.2 典型案例分析
第5章 数据分析
本章主要介绍和解决如下问题:
分布式系统中日志收集系统的架构。
如何通过Storm进行实时的流式数据分析。
如何通过Hadoop进行离线数据分析,通过Hive建立数据仓库。
如何将关系型数据库中存储的数据导入HDFS,以及从HDFS中将数据导入关系型数据库。
如何将分析好的数据通过图形展示给用户。
5.1 日志收集
5.1.1 inotify机制
5.1.2 ActiveMQ-CPP
5.1.3 架构和存储
5.1.4 Chukwa
5.2 离线数据分析
5.2.1 Hadoop项目简介
5.2.2 Hadoop环境搭建
5.2.3 MapReduce编写
5.2.4 Hive使用
5.3 流式数据分析
5.3.1 Storm的介绍
5.3.2 安装部署Storm
5.3.3 Storm的使用
5.4 数据同步
5.4.1 离线数据同步
5.4.2 实时数据同步
5.5 数据报表
5.5.1 数据报表能提供什么
5.5.2 报表工具Highcharts
参考文献
相关资源