搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
分布式实时处理系统:原理、架构与实现:principle, architecture and implementation
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111539964
  • 作      者:
    卢誉声著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2016
收藏
编辑推荐

  多位大数据专家联袂推荐,Autodesk资深系统研发工程师撰写,参透大规模分布式实时处理系统

  抽丝剥茧,从概念、原理到分布式实时计算框架实现,兼顾理论与实践,带领读者逐步实现一个高性能、基于C++11的分布式实时处理系统

展开
作者简介

  卢誉声,Autodesk系统软件研发工程师,从事平台架构方面的研发工作。在此之前,他曾在思科系统(中国)研发中心云产品研发部工作多年,并参与了大规模分布式系统的服务器后端、前端以及SDK的设计与研发工作,在分布式系统设计与实现、性能调优、高可用性和自动化等方面积累了丰富的敏捷实践与开发经验。他主要从事C/C++开发工作,致力于高性能平台架构的研究与开发。此外,对JavaScript、Lua以及移动开发平台等也有一定研究。译有《Storm实时数据处理》《高级C/C++编译技术》《JavaScript编程精解(原书第2版)》。

展开
内容介绍

  多位大数据专家联袂推荐,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。??


展开
精彩书评

  本书不但讲解高性能分布式实时处理系统编程的原理,特别是对于内存资源管理、编码解决方案、并发与异步处理、线程模型、批处理与实时处理的区别、消息队列、动态装载等作了详细介绍,还深入分析了实时处理系统的架构以及内部实现,最后详细分析了怎么样实现一套分布式实时处理系统Hurricane。本书非常适合大数据开发人员和架构师阅读,同时可以解决性能优化的很多问题。

  ——卢亿雷AdMaster技术副总裁兼总架构师

  分布式系统可以追溯到20世纪60年代的ARPANET。随着物联网、边缘计算和其他相关领域的蓬勃发展,对高性能分布式实时处理系统的需求日益增多。这本技术专著着眼于实际分布式框架的编程应用,将助力有志于该领域的软件开发人员。

  ——安宁Oracle空间数据部门首席工程师

  本书将对自己的C++编程、分布式存储系统、分布式计算框架、分布式通信等知识进行洗礼,不知不觉间就提升了自己的层次,期待阅读本书之后,也可以构建一个全新的分布式实时处理系统,变成分布式实时计算领域的贡献者。

  ——于俊科大讯飞大数据专家

  本书由浅到深,从基础的分布式系统的概念、网络通信和C++11高性能编程,到流处理中的消息、消息源、处理单元、收集器、计算拓扑等重要抽象的实现,到日志处理、频繁组合等典型应用,深入研究了一个典型分布式流处理系统的各个重要方面,推荐。

  ——蔡斌腾讯科技高级工程师

展开
目录

  本书赞誉

  序一

  序二

  序三

  前言

  第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


展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证