• Storm应用实践:实时事务处理之策略
21年品牌 40万+商家 超1.5亿件商品

Storm应用实践:实时事务处理之策略

8.22 1.2折 69 九品

仅1件

天津宝坻
认证卖家担保交易快速发货售后保障

作者肖恩T.艾伦(Sean T. Allen);马修·扬科夫斯基(Matthew Jankowski)

出版社机械工业出版社

出版时间2018-01

版次1

装帧其他

货号995671345775771675

上书时间2024-12-19

转转超品的书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 肖恩T.艾伦(Sean T. Allen);马修·扬科夫斯基(Matthew Jankowski)
  • 出版社 机械工业出版社
  • 出版时间 2018-01
  • 版次 1
  • ISBN 9787111586210
  • 定价 69.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 胶版纸
  • 页数 228页
【内容简介】
本书是一本指导Storm用户实践应用的指南,从Storm组件的应用细节、Storm的代码逻辑,到如何优化拓扑性能,以及如何在生产环境中部署Storm集群,作者将TheLadders的项目实践经验都整理归纳并在本书中完整呈现,配上大量图例说明,还附带了应用代码演示,使读者可以在短时间内学到作者花费多年才总结出来的Storm知识精华。
【作者简介】
:
肖恩T.艾伦(Sean T.Allen),现为Wallaroo Labs架构副总裁,之前曾担任TheLadders首席架构师。他专注于开发弹性、可扩展、能够移动核心业务指标的系统。他在软件行业从业20多年,拥有丰富的领域经验,能够创建灵活的数据工作流、分布式系统和基于s0A的应用框架。
精彩内容:
前    言?Preface在TheLadders,我们从Storm刚发布时就开始使用(那时的版本号还是0.5.x)。刚开始,我们只在一些非关键的业务流程上部署Storm,在很长的一段时间里,我们的Storm集群都一直处于持续运行的状态,且十分稳定。正因为没出过什么问题,所以我们也没花太多的心思在上面。直到需要应对更多业务时,我们意识到Storm刚好是最合适的解决方案,可结果在实施的过程中暴露出了各种各样的问题。例如,我们需要在生产环境中去应对资源争夺,缺乏对底层运行原理的充分认知,不断寻找优化性能的次优方案,面临缺少可视化的系统运行状态监控,等等。    这促使我们花费大量的时间和精力去研究本书中即将呈现的内容。在学习理解Storm的过程中,我们多次翻阅了所有可找得到的文档,深入研究相关源代码,整理最适合的Storm解决方案,不断总结“很好实践”,并且我们还增加了自定义的监控系统,便于更有效地排查故障和优化方案。    你可以在网上轻松查到有关Storm的原理文档,但我们发现,市面上依然缺少可以基于生产环境,指导使用Storm的实践应用文档。我们为此在博客上撰写了大量有关Storm的使用经验,所以当Manning找到我们希望合作一本Storm书籍时,大家一拍即合。我们有太多的知识想和大家一起分享,希望可以帮助大家少走我们曾走过的弯路,避开一些我们曾踩过的坑。    虽然我们分享出来的内容主要是基于在生产环境中,如何对Storm集群做优化、调试和故障排查,但我们更希望强调这里对Storm原理所需要的深入理解,同时展示出Storm的灵活性和广泛适用性,即使我们仅能代表众多使用Storm公司中的一员。 &nbs
...
【目录】
目  录?Contents

译者序



前言

致谢

关于本书

关于原书封面插图

第1章 Storm简介  1

1.1 什么是大数据  1

1.1.1 大数据的四大特性  2

1.1.2 大数据工具  3

1.2 Storm如何应用于大数据应用场景  5

1.3 为什么你希望使用Storm  9

1.4 小结  10

第2章 Storm核心概念  11

2.1 问题定义:GitHub提交数监控看板  11

2.1.1 数据:起点和终点  12

2.1.2 分解问题  12

2.2 Storm基础概念  13

2.2.1 拓扑  13

2.2.2 元组  15

2.2.3 流  16

2.2.4 spout  17

2.2.5 bolt  18

2.2.6 流分组  20

2.3 在Storm中实现GitHub提交数监控看板  22

2.3.1 建立一个Storm工程  22

2.3.2 实现spout  23

2.3.3 实现bolt  26

2.3.4 集成各个部分组成拓扑  29

2.4 小结  30

第3章 拓扑设计  31

3.1 拓扑设计方法  32

3.2 问题定义:一个社交热力图  32

3.3 将解决方案映射至Storm的逻辑  33

3.3.1 考虑数据流本身施加的要求  33

3.3.2 将数据点表示为元组  34

3.3.3 确定拓扑组成的步骤  35

3.4 设计的初步实现  38

3.4.1 spout:从数据源读取数据  38

3.4.2 bolt:连接至外部服务  39

3.4.3 bolt:将数据寄放在内存里  41

3.4.4 bolt:持久化存储到数据库  45

3.4.5 定义组件间的流分组策略  47

3.4.6 在本地集群模式中构建一个拓扑  48

3.5 扩展拓扑  49

3.5.1 理解Storm中的并行机制  50

3.5.2 调整拓扑配置来解决设计中遗留的瓶颈  54

3.5.3 调整拓扑以解决数据流中固有的瓶颈  60

3.6 拓扑的设计范式  63

3.6.1 分解为功能组件的设计方法  65

3.6.2 基于重分配来分解组件的设计方法  65

3.6.3 最简单的功能组件与最少的重分配次数  69

3.7 小结  70

第4章 设计健壮的拓扑  71

4.1 对可靠性的要求  71

4.2 问题定义:一个信用卡授权系统  72

4.2.1 有重试特性的概念性解决方案  72

4.2.2 定义数据点  74

4.2.3 在Storm上实现带有重试特性的方案  74

4.3 bolt基础实现  76

4.3.1 AuthorizeCreditCard的实现  76

4.3.2 ProcessedOrderNotification的实现  77

4.4 消息处理保障  78

4.4.1 元组状态:处理完成或失败  78

4.4.2 bolt中的锚定、应答和容错  80

4.4.3 spout在消息处理保障中的角色  84

4.5 回放语义  87

4.5.1 Storm中可靠性的级别  87

4.5.2 在Storm拓扑中检查仅一次处理  88

4.5.3 检查拓扑中的可靠性保障  89

4.6 小结  94

第5章 拓扑由本地到远程的实施  95

5.1 Storm集群  96

5.1.1 解析工作结点  98

5.1.2 基于信用卡授权拓扑的上下文来理解工作结点  99

5.2 Storm集群容错中的快速失败机制  100

5.3 安装Storm集群  101

5.3.1 配置Zookeeper集群  101

5.3.2 在 Storm 的主结点和工作结点上安装依赖组件  102

5.3.3 安装Storm到主结点和工作结点  102

5.3.4 通过storm.yaml配置主结点和工作结点  102

5.3.5 在监督机制下启动Nimbus和Supervisor  103

5.4 在Storm集群上运行拓扑  104

5.4.1 重新考虑如何将拓扑组件组合在一起  104

5.4.2 在本地模式下运行拓扑  105

5.4.3 在一个远程 Storm 集群上运行拓扑  105

5.4.4 在一个远程Storm集群上部署拓扑  106

5.5 Storm UI及其在集群中的角色   107

5.5.1 Storm UI:Storm集群概要  107

5.5.2 Storm UI:独立拓扑概要  111

5.5.3 Storm UI:独立spout/bolt概要  115

5.6 小结  118

第6章 对Storm进行调优  120

6.1 问题定义:Daily Deals!重生版  121

6.1.1 创建概念性解决方案  121

6.1.2 将方案转换为Storm设计  122

6.2 初始化实施  122

6.2.1 spout:读取自一个数据源  124

6.2.2 bolt:查找推荐商品  125

6.2.3 bolt:为每个商品查询详细信息  126

6.2.4 bolt:保存推荐的商品详情  127

6.3 调优:我想为它提速  128

6.3.1 Storm UI:调优的定位工具  128

6.3.2 为性能值建立一个基线集  130

6.3.3 判断瓶颈  131

6.3.4 spout:控制数据流入拓扑的速率  135

6.4 延迟率:当外部系统依然能正常工作时  137

6.4.1 在拓扑中模拟延迟  137

6.4.2 延迟的外因和内因  139

6.5 Storm的指标统计API  143

6.5.1 使用Storm的内建

CountMetric  143

6.5.2 设置一个指标接收器  144

6.5.3 创建一个自定义的SuccessRateMetric  145

6.5.4 创建一个自定义的MultiSuccessRateMetric  147

6.6 小结  149

第7章 资源冲突  150

7.1 调整一个工作结点上运行的工作进程数量  152

7.1.1 问题  152

7.1.2 解决方案  152

7.1.3 讨论  153

7.2 修改工作进程(JVM)上的内存分配  153

7.2.1 问题  153

7.2.2 解决方案  154

7.2.3 讨论  154

7.3 定位拓扑上运行的工作结点/进程  154

7.3.1 问题  154

7.3.2 解决方案  155

7.3.3 讨论  155

7.4 在一个Storm集群中的工作进程冲突  156

7.4.1 问题  157

7.4.2 解决方案  157

7.4.3 讨论  158

7.5 在一个工作进程(JVM)中的内存冲突  159

7.5.1 问题  162
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP