分布式实时处理系统:原理、架构与实现 PDF 高清电子书 免费下载 完整版 在线阅读- 高飞网
分布式实时处理系统

分布式实时处理系统
原理、架构与实现

卢誉声
分布式 架构
浏览人数:12
读者:                   ...
  多位大数据专家联袂推荐,Autodesk资深系统研发工程师撰写,参透大规模分布式实时处理系统。抽丝剥茧,从概念、原理到分布式实时计算框架实现,兼顾理论与实践,带领读者逐步实现一个高性能、基于C++11的分布式实时处理系统Hurricane。
  第1~5章,分布式实时处理基石。
  这部分涵盖分布式系统原理与特性,分布式系统通信基础与高层抽象,C++11的高性能编程基础与进阶(内存资源管理、编码解决方案、并发与异步处理、线程模型等),以及Hadoop与Storm基本模型和可靠消息处理的基本思想。同时结合所讲知识带领读者开发公告牌服务、留言板系统等,加深理解。
  第6~11章,动手时间!
  这部分是本书重点,带领大家实现一个基于C++11的高性能分布式实时处理框架,对读者日后的框架理解、开发与定制能力大有裨益。涵盖实时处理系统的总体架构设计,实时处理系统中各接口、服务组件、管理服务组件、可靠消息处理方案,以及底层数据传输层及高性能网络库Meshy(实现可靠的TCP/IP传输和消息队列,提供底层网络传输基础)的设计与实现。
  第12~14章,高级技能get!
  这部分介绍一些实用的高级技能。涵盖事务性拓扑实现方案,多语言接口与优化方案,以及高级抽象元语、DRPC的*佳实践。
  第15~17章,用起来!
  这部分给出了框架的应用案例,进一步加强读者实践技能。涵盖基于Hurricane开发的日志流处理实例、频繁二项集挖掘系统,以及在AWS和阿里云上部署Hurricane。??

本书赞誉   
序一   
序二   
序三   
前言    1
第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   
看过本书的人还看过