分布式实时处理系统
全新正版 极速发货
¥
57.83
5.8折
¥
99
全新
仅1件
作者卢誉声 著
出版社机械工业出版社
ISBN9787111539964
出版时间2016-06
装帧平装
开本16开
定价99元
货号1201327564
上书时间2024-06-14
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
卢誉声,软件工程师,擅长c++多线程编程和实时分布式系统架构。曾在思科系统(中国)研发中心云产品研发部工作多年。他曾参与服务器后端、前端以及SDK的设计与研发工作,在大规模分布式系统设计与实现、性能调优、高可用性和自动化等方面积累了丰富的敏捷实践与开发经验。现在在美国某IT/互联网公司工作,从事c++底层通信系统设计与研发。此外,他从事c/c++研发工作,对Java、JavaScript、Lua以及移动开发平台等也有一定研究。
目录
本书赞誉
序一
序二
序三
前言
第1章 分布式计算概述 1
1.1 分布式概念 1
1.2 分布式计算及其原理 2
1.3 分布式系统特性 3
1.3.1 容错性 3
1.3.2 高可扩展性 4
1.3.3 开放性 5
1.3.4 并发处理能力 5
1.3.5 透明性 6
1.4 通用分布式计算系统 6
1.4.1 Apache Hadoop 6
1.4.2 Apache Spark 8
1.4.3 Apache Storm 9
1.5 分布式存储系统 10
1.5.1 分布式存储概念 10
1.5.2 分布式存储系统特点 12
1.5.3 分布式存储系统分类 12
1.5.4 常见分布式存储系统 13
1.6 本章小结 14
第2章 分布式系统通信基础 15
2.1 时代的浪潮 15
2.1.1 集中式通信网 16
2.1.2 去中心化 16
2.2 可靠的数据链路 17
2.2.1 数据分组 17
2.2.2 帧同步 18
2.2.3 差错控制 18
2.2.4 链路管理 18
2.2.5 问题与解决方案 19
2.3 分层架构 19
2.4 网络层 22
2.4.1 寻找路径 22
2.4.2 网络分层 23
2.4.3 TCP/IP概述 23
2.4.4 IP协议 24
2.5 传输层 30
2.5.1 数据自动分包 30
2.5.2 端到端的传输 30
2.5.3 数据的可靠传输 30
2.6 应用层 35
2.6.1 ping 35
2.6.2 telnet 36
2.6.3 OSPF 36
2.6.4 DNS 36
2.6.5 HTTP协议 37
2.7 基于消息协议的公告牌 38
2.7.1 需求描述 38
2.7.2 制定协议 38
2.8 分布式通信举例——MapReduce 39
2.9 本章小结 41
第3章 通信系统高层抽象 42
3.1 RPC介绍 42
3.2 RESTful 44
3.2.1 资源和表现层 45
3.2.2 状态转移 45
3.2.3 RESTful总结 46
3.3 消息队列 46
3.4 序列化 49
3.5 使用Thrift实现公告牌服务 50
3.5.1 Apache Thrift介绍 51
3.5.2 安装Apache Thrift 51
3.5.3 编写Thrift文件 52
3.5.4 实现服务器 53
3.5.5 实现客户端 54
3.6 本章小结 56
第4章 走进C++高性能编程 57
4.1 基于C++的留言板系统 58
4.1.1 基于Socket的通信 58
4.1.2 C++中的内存与资源管理 64
4.2 来自服务器的天书 69
4.2.1 编码 69
4.2.2 C++98的编码缺陷 72
4.2.3 C++11编码支持 73
4.3 繁忙的服务器 75
4.3.1 分身乏术 75
4.3.2 fork——分身术 76
4.3.3 进程间通信 79
4.3.4 轻量级分身——线程 85
4.3.5 C++11线程 86
4.3.6 竞争问题与解决方案 88
4.3.7 多线程优化 95
4.3.8 异步I/O 99
4.4 消失不见的内存 105
4.4.1 内存分配与内存碎片 106
4.4.2 tcmalloc 108
4.4.3 内存池 110
4.5 本章小结 112
第5章 分布式实时处理系统 113
5.1 Hadoop与MapReduce 113
5.1.1 HDFS 114
5.1.2 MapReduce模型 115
5.2 Storm实时处理系统 129
5.2.1 历史 129
5.2.2 计算模型 130
5.2.3 总体架构 133
5.2.4 Storm元数据 133
5.2.5 Storm与Hadoop比较 138
5.3 有保证的消息处理 139
5.3.1 完全处理与元组树 139
5.3.2 元组的唯一标识 139
5.3.3 确认和失败 141
5.3.4 高效实现 143
5.4 本章小结 144
第6章 实时处理系统编程接口设计 145
6.1 总体架构设计 145
6.1.1 Hurricane与Storm比较 145
6.1.2 总体架构 146
6.1.3 任务接口 148
6.2 消息源接口设计 149
6.3 消息处理器接口设计 150
6.4 数据收集器设计 151
6.5 元组接口设计 154
6.6 序列化接口设计 160
6.7 本章小结 161
第7章 服务组件设计与实现 162
7.1 Executor设计与实现 162
7.1.1 事件驱动的消息队列 162
7.1.2 动态装载技术 167
7.1.3 Executor实现 169
7.2 Task设计与实现 171
7.3 本章小结 172
第8章 管理服务设计与实现 173
8.1 President功能与设计 173
8.2 President实现 174
8.2.1 简单的网络通信实现 175
8.2.2 Topology装载实现 182
8.2.3 Manager管理调度实现 184
8.2.4 序列化实现 193
8.3 本章小结 198
第9章 实时处理系统编程接口实现 199
9.1 消息源接口实现 200
9.1.1 消息源执行器 200
9.1.2 WordCount实现实例 205
9.2 消息处理单元接口实现 207
9.2.1 消息处理单元执行器 207
9.2.2 事件处理 212
9.2.3 WordCount实现实例 215
9.3 数据收集器实现 218
9.3.1 分发策略 218
9.3.2 传输层实现 224
9.4 本章小结 226
第10章 可靠消息处理 227
10.1 基本概念 227
10.1.1 完全处理 227
10.1.2 失败与重发 229
10.2 接口设计 229
10.3 具体实现 233
10.3.1 简单实现 233
10.3.2 高效实现 235
10.4 本章小结 237
第11章 通信系统设计与实现 238
11.1 I/O多路复用方案解析 239
11.1.1 基本网络编程接口 239
11.1.2 非阻塞的服务器程序 241
11.1.3 使用select()接口的基于事件驱动的服务器模型 242
11.1.4 使用epoll实现异步事件通知模型 245
11.2 基础工具 249
11.2.1 线程工具 250
11.2.2 日志工具 254
11.3 传输层实现 263
11.3.1 Reactor模式 263
11.3.2 定义抽象TP传输层 264
11.3.3 实现基于epoll的TP传输层 269
11.3.4 实现基于IOCP的TP传输层 290
11.4 应用层HTTP实现 307
11.4.1 HttpContext 307
11.4.2 HttpRequest 311
11.4.3 HttpResponse 313
11.4.4 HttpConnection 315
11.4.5 HttpServer 317
11.4.6 总结 319
11.5 跨平台分割编译 320
11.5.1 Makefile 320
11.5.2 Kake 323
11.6 与实时处理系统集成 325
11.6.1 修改NetListener 325
11.6.2 修改NetConnector 327
11.7 本章小结 330
第12章 事务性Topology实现 331
12.1 Exact-once语义解决方案 331
12.2 设计细节 333
12.2.1 构造事务性Topology 333
12.2.2 消息处理单元 334
12.3 事务性Topology API 337
12.3.1 消息处理单元 337
12.3.2 事务性消息源 339
12.4 本章小结 339
第13章 多语言接口 340
13.1 C语言通用接口 340
13.1.1 元组接口 342
13.1.2 消息源接口 346
13.1.3 消息处理单元接口 349
13.1.4 计算拓扑接口 352
13.2 Python接口 354
13.2.1 ctypes 354
13.2.2 元组接口 356
13.2.3 消息源接口 359
13.2.4 消息处理单元接口 360
13.2.5 计算拓扑接口 361
13.2.6 应用示例 364
13.3 JavaScript接口 365
13.3.1 V8引擎 366
13.3.2 Node.js 366
13.3.3 V8的互操作接口 367
13.3.4 任务接口 368
13.3.5 消息源接口 369
13.3.6 消息处理单元接口 370
13.3.7 计算拓扑接口 371
13.3.8 应用示例 373
13.4 Java接口 375
13.4.1 任务接口 375
13.4.2 消息源接口 376
13.4.3 消息处理单元接口 377
13.4.4 计算拓扑接口 377
13.4.5 本地代码 380
13.4.6 应用示例 382
13.5 Swift接口 384
13.5.1 应用范围 385
13.5.2 任务接口 385
13.5.3 消息源接口 386
13.5.4 消息处理单元接口 387
13.5.5 计算拓扑接口 388
13.6 本章小结 390<
— 没有更多了 —
以下为对购买帮助不大的评价