内容简介
作者简介
陈康贤,淘宝花名龙隆,淘宝技术部研发工程师,2011年加入淘宝网,参与了阿里云手机商城、口碑网迁移、店铺建站、offer、支付宝卡宝、生活商城、淘宝同学等项目,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为丰富的实践经验。曾在程序员上发表过漫谈基于http协议的SOA架构浅析HTTP平台的安全稳定性架构两篇文章,对基于HTTP协议的SOA架构有深入研究,在排查解决线上问题和故障方面有丰富的实践经验,擅于利用数据分析解决实际问题,对新技术有浓厚的兴趣。
本书目录
第1章 面向服务的体系架构SOA1本章主要介绍和解决以下问题,这些也是全书的基础:
HTTP协议的工作方式与HTTP网络协议栈的结构。
如何实现基于HTTP协议和TCP协议的RPC调用,它们之间有何差别,分别适应何种场景。
如何实现服务的动态注册和路由,以及软负载均衡的实现。
1.1 基于TCP协议的RPC3
RPC名词解释3
对象的序列化4
基于TCP协议实现RPC6
1.2 基于HTTP协议的RPC9
HTTP协议栈9
HTTP请求与响应15
通过HttpClient发送HTTP请求16
使用HTTP协议的优势17
JSON和XML18
RESTful和RPC20
基于HTTP协议的RPC的实现22
1.3 服务的路由和负载均衡30
服务化的演变30
负载均衡算法33
动态配置规则39
ZooKeeper介绍与环境搭建40
ZooKeeper API使用简介43
zkClient的使用47
路由和负载均衡的实现50
1.4HTTP服务网关54
第2章 分布式系统基础设施58
本章主要介绍和解决如下问题:
分布式缓存memcache的使用及分布式策略,包括Hash算法的选择。
常见的分布式系统存储解决方案,包括MySQL的分布式扩展、HBase的API及使用场景、Redis的使用等。
如何使用分布式消息系统ActiveMQ来降低系统之间的耦合度,以及进行应用间的通信。
垂直化的搜索引擎在分布式系统中的使用,包括搜索引擎的基本原理、Lucene详细的使用介绍,以及基于Lucene的开源搜索引擎工具Solr的使用。
2.1分布式缓存60
memcache简介及安装60
memcache API与分布式64
分布式session69
2.2持久化存储71
MySQL扩展72
HBase80
Redis91
2.3消息系统95
ActiveMQ & JMS96
2.4垂直化搜索引擎104
Lucene简介105
Lucene的使用108
Solr119
2.5其他基础设施125
第3章 互联网安全架构126
本章主要介绍和解决如下问题:
常见的Web攻击手段和防御方法,如XSS、CRSF、SQL注入等。
常见的一些安全算法,如数字摘要、对称加密、非对称加密、数字签名、数字证书等。
如何采用摘要认证方式防止信息篡改、通过数字签名验证通信双方的合法性,以及通过HTTPS协议保障通信过程中数据不被第三方监听和截获。
在开放平台体系下,OAuth协议如何保障ISV对数据的访问是经过授权的合法行为。
3.1常见的Web攻击手段128
XSS攻击128
CRSF攻击130
SQL注入攻击133
文件上传漏洞139
DDoS攻击146
其他攻击手段149
3.2常用的安全算法149
数字摘要149
对称加密算法155
非对称加密算法158
数字签名162
数字证书166
3.3摘要认证185
为什么需要认证185
摘要认证的原理187
摘要认证的实现188
3.4签名认证192
签名认证的原理192
签名认证的实现193
3.5HTTPS协议200
HTTPS协议原理200
SSL/TLS201
部署HTTPS Web208
3.6OAuth协议215
OAuth的介绍215
OAuth授权过程216
第4章 系统稳定性218
本章主要介绍和解决如下问题:
常用的在线日志分析命令的使用和日志分析脚本的编写,如cat、grep、wc、less等命令的使用,以及awk、shell脚本的编写。
如何进行集群的监控,包括监控指标的定义、心跳检测、容量评估等。
如何保障高并发系统的稳定运行,如采用流量控制、依赖管理、服务分级、开关等策略,以及介绍如何设计高并发系统。
如何优化应用的性能,包括前端优化、Java程序优化、数据库查询优化等。
如何进行Java应用故障的在线排查,包括一系列排查工具的使用,以及一些实际案例的介绍等。
4.1在线日志分析220
日志分析常用命令220
日志分析脚本230
4.2集群监控239
监控指标239
心跳检测247
容量评估及应用水位252
4.3流量控制255
流量控制实施255
服务稳定性260
高并发系统设计265
4.4性能优化277
如何寻找性能瓶颈277
性能测试工具285
性能优化措施292
4.5Java应用故障的排查314
常用的工具314
典型案例分析331
第5章 数据分析337
本章主要介绍和解决如下问题:
分布式系统中日志收集系统的架构。
如何通过Storm进行实时的流式数据分析。
如何通过Hadoop进行离线数据分析,通过Hive建立数据仓库。
如何将关系型数据库中存储的数据导入HDFS,以及从HDFS中将数据导入关系型数据库。
如何将分析好的数据通过图形展示给用户。
5.1日志收集339
inotify机制339
ActiveMQ-CPP343
架构和存储359
Chukwa362
5.2离线数据分析369
Hadoop项目简介370
Hadoop环境搭建374
MapReduce编写384
Hive使用389
5.3流式数据分析403
Storm的介绍404
安装部署Storm407
Storm的使用418
5.4数据同步422
离线数据同步423
实时数据同步429
5.5数据报表431
数据报表能提供什么431
报表工具Highcharts432
参考文献445
· · · · · ·


