微信扫一扫,移动浏览光盘
简介
目录
序一
序二
序三
前言
第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.1ApacheHadoop6
1.4.2ApacheSpark8
1.4.3ApacheStorm9
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.3TCP/IP概述23
2.4.4IP协议24
2.5传输层30
2.5.1数据自动分包30
2.5.2端到端的传输30
2.5.3数据的可靠传输30
2.6应用层35
2.6.1ping35
2.6.2telnet36
2.6.3OSPF36
2.6.4DNS36
2.6.5HTTP协议37
2.7基于消息协议的公告牌38
2.7.1需求描述38
2.7.2制定协议38
2.8分布式通信举例——MapReduce39
2.9本章小结41
第3章通信系统高层抽象42
3.1RPC介绍42
3.2RESTful44
3.2.1资源和表现层45
3.2.2状态转移45
3.2.3RESTful总结46
3.3消息队列46
3.4序列化49
3.5使用Thrift实现公告牌服务50
3.5.1ApacheThrift介绍51
3.5.2安装ApacheThrift51
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.2C 中的内存与资源管理64
4.2来自服务器的天书69
4.2.1编码69
4.2.2C 98的编码缺陷72
4.2.3C 11编码支持73
4.3繁忙的服务器75
4.3.1分身乏术75
4.3.2fork——分身术76
4.3.3进程间通信79
4.3.4轻量级分身——线程85
4.3.5C 11线程86
4.3.6竞争问题与解决方案88
4.3.7多线程优化95
4.3.8异步I/O99
4.4消失不见的内存105
4.4.1内存分配与内存碎片106
4.4.2tcmalloc108
4.4.3内存池110
4.5本章小结112
第5章分布式实时处理系统113
5.1Hadoop与MapReduce113
5.1.1HDFS114
5.1.2MapReduce模型115
5.2Storm实时处理系统129
5.2.1历史129
5.2.2计算模型130
5.2.3总体架构133
5.2.4Storm元数据133
5.2.5Storm与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.1Hurricane与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.1Executor设计与实现162
7.1.1事件驱动的消息队列162
7.1.2动态装载技术167
7.1.3Executor实现169
7.2Task设计与实现171
7.3本章小结172
第8章管理服务设计与实现173
8.1President功能与设计173
8.2President实现174
8.2.1简单的网络通信实现175
8.2.2Topology装载实现182
8.2.3Manager管理调度实现184
8.2.4序列化实现193
8.3本章小结198
第9章实时处理系统编程接口实现199
9.1消息源接口实现200
9.1.1消息源执行器200
9.1.2WordCount实现实例205
9.2消息处理单元接口实现207
9.2.1消息处理单元执行器207
9.2.2事件处理212
9.2.3WordCount实现实例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.1I/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.1Reactor模式263
11.3.2定义抽象TP传输层264
11.3.3实现基于epoll的TP传输层269
11.3.4实现基于IOCP的TP传输层290
11.4应用层HTTP实现307
11.4.1HttpContext307
11.4.2HttpRequest311
11.4.3HttpResponse313
11.4.4HttpConnection315
11.4.5HttpServer317
11.4.6总结319
11.5跨平台分割编译320
11.5.1Makefile320
11.5.2Kake323
11.6与实时处理系统集成325
11.6.1修改NetListener325
11.6.2修改NetConnector327
11.7本章小结330
第12章事务性Topology实现331
12.1Exact-once语义解决方案331
12.2设计细节333
12.2.1构造事务性Topology333
12.2.2消息处理单元334
12.3事务性TopologyAPI337
12.3.1消息处理单元337
12.3.2事务性消息源339
12.4本章小结339
第13章多语言接口340
13.1C语言通用接口340
13.1.1元组接口342
13.1.2消息源接口346
13.1.3消息处理单元接口349
13.1.4计算拓扑接口352
13.2Python接口354
13.2.1ctypes354
13.2.2元组接口356
13.2.3消息源接口359
13.2.4消息处理单元接口360
13.2.5计算拓扑接口361
13.2.6应用示例364
13.3JavaScript接口365
13.3.1V8引擎366
13.3.2Node.js366
13.3.3V8的互操作接口367
13.3.4任务接口368
13.3.5消息源接口369
13.3.6消息处理单元接口370
13.3.7计算拓扑接口371
13.3.8应用示例373
13.4Java接口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.5Swift接口384
13.5.1应用范围385
13.5.2任务接口385
13.5.3消息源接口386
13.5.4消息处理单元接口387
13.5.5计算拓扑接口388
13.6本章小结390
第14章Squared设计与实现——实现高级抽象元语391
14.1StormTrident介绍391
14.1.1Squared示例391
14.1.2DRPC示例394
14.2Squared实现396
14.2.1SquaredTopology和Spout396
14.2.2SquaredBolt401
14.2.3Stream405
14.2.4状态存储410
14.2.5DRPC实现412
14.2.6操作与处理节点416
14.2.7流操作419
14.3本章小结423
第15章实战:日志流处理425
15.1日志流处理设计方案425
15.2实现Topology427
15.2.1编写消息源427
15.2.2编写索引消息处理单元428
15.2.3编写统计消息处理单元429
15.3本章小结431
第16章实战:频繁组合查找432
16.1背景介绍432
16.1.1数据挖掘概念432
16.1.2关联规则和频繁项集433
16.1.3啤酒与尿布435
16.2频繁二项集挖掘方法435
16.2.1频繁二项集435
16.2.2算法设计思路438
16.2.3Hurricane实现思路439
16.3编写Spout439
16.4编写Bolt441
16.4.1SplitBolt441
16.4.2PairCountBolt442
16.4.3PairTotalCountBolt443
16.4.4ConfidenceComputeBolt444
16.4.5SupportComputeBolt445
16.4.6FilterBolt447
16.5编写Topology448
16.6本章小结449
第17章实战:在AWS和阿里云上部署Hurricane实时处理系统450
17.1AWS部署450
17.1.1搭建虚拟私有云452
17.1.2配置安全组455
17.1.3加载EC2实例456
17.1.4弹性IP地址管理461
17.2阿里云部署464
17.2.1创建虚拟私有云464
17.2.2管理安全组467
17.2.3创建ECS468
17.2.4SSH登录471
17.3Hurricane分布式部署与管理471
17.3.1分布式部署原理472
17.3.2分布式安装配置472
17.3.3分布式启动476
17.4部署分布式实时处理系统477
17.5未来之路478
17.6本章小结479
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问