更新时间:2019-01-03 10:51:21
封面
版权信息
本书赞誉
序一
序二
序三
前言
第1章 分布式计算概述
1.1 分布式概念
1.2 分布式计算及其原理
1.3 分布式系统特性
1.3.1 容错性
1.3.2 高可扩展性
1.3.3 开放性
1.3.4 并发处理能力
1.3.5 透明性
1.4 通用分布式计算系统
1.4.1 Apache Hadoop
1.4.2 Apache Spark
1.4.3 Apache Storm
1.5 分布式存储系统
1.5.1 分布式存储概念
1.5.2 分布式存储系统特点
1.5.3 分布式存储系统分类
1.5.4 常见分布式存储系统
1.6 本章小结
第2章 分布式系统通信基础
2.1 时代的浪潮
2.1.1 集中式通信网
2.1.2 去中心化
2.2 可靠的数据链路
2.2.1 数据分组
2.2.2 帧同步
2.2.3 差错控制
2.2.4 链路管理
2.2.5 问题与解决方案
2.3 分层架构
2.4 网络层
2.4.1 寻找路径
2.4.2 网络分层
2.4.3 TCP/IP概述
2.4.4 IP协议
2.5 传输层
2.5.1 数据自动分包
2.5.2 端到端的传输
2.5.3 数据的可靠传输
2.6 应用层
2.6.1 ping
2.6.2 telnet
2.6.3 OSPF
2.6.4 DNS
2.6.5 HTTP协议
2.7 基于消息协议的公告牌
2.7.1 需求描述
2.7.2 制定协议
2.8 分布式通信举例——MapReduce
2.9 本章小结
第3章 通信系统高层抽象
3.1 RPC介绍
3.2 RESTful
3.2.1 资源和表现层
3.2.2 状态转移
3.2.3 RESTful总结
3.3 消息队列
3.4 序列化
3.5 使用Thrift实现公告牌服务
3.5.1 Apache Thrift介绍
3.5.2 安装Apache Thrift
3.5.3 编写Thrift文件
3.5.4 实现服务器
3.5.5 实现客户端
3.6 本章小结
第4章 走进C++高性能编程
4.1 基于C++的留言板系统
4.1.1 基于Socket的通信
4.1.2 C++中的内存与资源管理
4.2 来自服务器的天书
4.2.1 编码
4.2.2 C++98的编码缺陷
4.2.3 C++11编码支持
4.3 繁忙的服务器
4.3.1 分身乏术
4.3.2 fork——分身术
4.3.3 进程间通信
4.3.4 轻量级分身——线程
4.3.5 C++11线程
4.3.6 竞争问题与解决方案
4.3.7 多线程优化
4.3.8 异步I/O
4.4 消失不见的内存
4.4.1 内存分配与内存碎片
4.4.2 tcmalloc
4.4.3 内存池
4.5 本章小结
第5章 分布式实时处理系统
5.1 Hadoop与MapReduce
5.1.1 HDFS
5.1.2 MapReduce模型
5.2 Storm实时处理系统
5.2.1 历史