本篇主要提供事件流实战瓦伦丁·克雷塔著金中浩译电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
图书基本信息 | |||
图书名称 | 事件流实战 | 作者 | 瓦伦丁·克雷塔(ValentinCrettaz)著金中浩 译 |
定价 | 98.00元 | 出版社 | 清华大学出版社 |
ISBN | 9787302559412 | 出版日期 | 2020-08-01 |
字数 | 页码 | ||
版次 | 装帧 | 平装 | |
开本 | 16开 | 商品重量 |
内容提要 | |
Linkedln、Netflix等知名应用都通过实时响应用户和系统事件,来提高灵活度和响应速度。在大规模系统中,需要能高效地监控、管理和处理大量的事件流。 Kafka工具以及诸如统一日志处理的创新模式可帮助我们为基于事件的系统创建连贯的数据处理架构。 《事件流实战》讲解如何使用统一日志模式,来聚合、存储和处理事件流。在这本实用指南中,你将看到Lambda架构、流聚合和事件重放处理等重要的系统设计,还将看到扩展、弹性和高级流模式!读完本书,你将能设计出易于构建、部署和维护的由数据驱动的大型应用。 主要内容 校验与监控事件流 事件分析 事件建模 Apache Kafka与Amazon Kinesis的使用示例 |
目录 | |
第I部分 事件流与统一日志 章 事件流 3 1.1 术语定义 4 1.1.1 事件 4 1.1.2 持续事件流 5 1.2 探寻我们熟悉的事件流 6 1.2.1 应用级日志 6 1.2.2 站点分析 8 1.2.3 发布/订阅消息 9 1.3 统一持续事件流 11 1.3.1 古典时代 12 1.3.2 混合时代 14 1.3.3 统一时代 15 1.4 统一日志的应用场景 17 1.4.1 用户反馈环路 17 1.4.2 整体系统监控 18 1.4.3 应用系统版本在线升级 19 1.5 本章小结 20 第2章 统一日志 21 2.1 深入统一日志 22 2.1.1 统一 22 2.1.2 只可追加 23 2.1.3 分布式 23 2.1.4 有序性 24 2.2 引入我们的应用 25 2.2.1 识别关键事件 26 2.2.2 电子商务中的统一日志 27 2.2.3 事件建模 28 2.3 配置统一日志 30 2.3.1 下载并安装Apache Kafka 30 2.3.2 创建流 31 2.3.3 发送和接收事件 31 2.4 本章小结 33 第3章 使用Apache Kafka进行事件流处理 35 3.1 事件流处理入门 36 3.1.1 为什么要处理事件流? 36 3.1.2 单事件处理 38 3.1.3 多事件处理 38 3.2 设计个流处理程序 39 3.2.1 将Kafka作为黏合剂 39 3.2.2 明确需求 40 3.3 编写一个简单的Kafka worker 42 3.3.1 配置开发环境 42 3.3.2 应用配置 43 3.3.3 从Kafka读取事件 45 3.3.4 向Kafka写入事件 46 3.3.5 整合读取与写入 47 3.3.6 测试 48 3.4 编写单事件处理器 49 3.4.1 编写事件处理器 50 3.4.2 更新main方法 52 3.4.3 再次测试 53 3.5 本章小结 54 第4章 使用Amazon Kinesis 处理流事件 55 4.1 向Kinesis写入事件 56 4.1.1 系统监控与统一日志 56 4.1.2 与Kafka的术语 差异 58 4.1.3 配置事件流 58 4.1.4 事件建模 60 4.1.5 编写代理程序 60 4.2 从Kinesis读取事件 65 4.2.1 Kinesis的框架与SDK 66 4.2.2 使用AWS CLI读取事件 67 4.2.3 使用boto监控Kinesis stream 72 4.3 本章小结 79 第5章 有状态的流式处理 81 5.1 侦测“购物者弃置购物车”事件 82 5.1.1 管理者的需求 82 5.1.2 算法定义 82 5.1.3 派生事件流 83 5.2 新事件的模型 84 5.2.1 购物者将商品放入购物车 84 5.2.2 购物者支付订单 85 5.2.3 购物者弃置购物车 85 5.3 有状态的流式处理 86 5.3.1 状态管理 86 5.3.2 流窗口 88 5.3.3 流式处理框架的功能 88 5.3.4 流式处理框架 89 5.3.5 为尼罗选择一个流式处理框架 92 5.4 侦测被弃置的购物车 92 5.4.1 设计Samza job 92 5.4.2 项目准备 94 5.4.3 配置Samza job 94 5.4.4 使用Java开发job task 96 5.5 运行Samza job 101 5.5.1 YARN 101 5.5.2 提交job 102 5.5.3 测试job 102 5.5.4 改进job 104 5.6 本章小结 104 第II部分 针对流的数据工程 第6章 模式 107 6.1 模式介绍 108 6.1.1 Plum公司 108 6.1.2 将事件模式作为契约 109 6.1.3 模式技术的功能 111 6.1.4 不同的模式技术 112 6.1.5 为Plum公司选择一种模式技术 114 6.2 Avro中的事件模型 114 6.2.1 准备开发环境 115 6.2.2 编写质检事件的模式 116 6.2.3 Avro与Java的互相转换 117 6.2.4 测试 120 6.3 事件与模式的关联 121 6.3.1 初步的探索 121 6.3.2 Plum公司的自描述事件 124 6.3.3 Plum公司的模式注册 125 6.4 本章小结 127 第7章 事件归档 129 7.1 归档者宣言 130 7.1.1 弹性 131 7.1.2 重复处理 132 7.1.3 精准 133 7.2 归档的设计 135 7.2.1 什么应被归档 135 7.2.2 何处进行归档 136 7.2.3 如何进行归档 136 7.3 使用Secor归档Kafka的事件 137 7.3.1 配置 Kafka 138 7.3.2 创建事件归档 140 7.3.3 配置Secor 141 7.4 批处理事件 143 7.4.1 批处理入门 143 7.4.2 设计批处理任务 145 7.4.3 使用Apache Spark编写任务 146 7.4.4 使用 Elastic MapReduce运行任务 151 7.5 本章小结 156 第8章 轨道式流处理 157 8.1 异常流程 158 8.1.1 UNIX编程中的异常处理 158 8.1.2 Java中的异常处理 160 8.1.3 异常与日志 163 8.2 异常与统一日志 164 8.2.1 针对异常的设计 164 8.2.2 建立异常事件模型 166 8.2.3 组合多个正常处理流程 168 8.3 使用Scalaz组合异常 168 8.3.1 异常的处理计划 169 8.3.2 配置Scala项目 170 8.3.3 从Java到Scala 171 8.3.4 使用Scalaz更好地处理异常 174 8.3.5 组合异常 175 8.4 实现轨道式编程 179 8.4.1 轨道式处理 180 8.4.2 构建轨道 182 8.5 本章小结 189 第9章 命令 191 9.1 命令与统一日志 192 9.1.1 事件与命令 192 9.1.2 隐式命令与显式命令 193 9.1.3 在统一日志中使用命令 194 9.2 决策 195 9.2.1 Plum公司中的命令 195 9.2.2 对命令进行建模 197 9.2.3 编写警报的模式 198 9.2.4 定义警报的模式 200 9.3 消费命令 201 9.3.1 合适的工具 201 9.3.2 读取命令 202 9.3.3 转换命令 203 9.3.4 连接各个程序 205 9.3.5 测试 206 9.4 执行命令 207 9.4.1 使用MailGun 207 9.4.2 完成executor 208 9.4.3 后的测试 211 9.5 扩展命令 212 9.5.1 单条流还是多条? 212 9.5.2 处理命令执行的异常 213 9.5.3 命令层级 214 9.6 本章小结 215 第III部分 事件分析 0章 读取时分析 219 10.1 读取时分析与写入时分析 220 10.1.1 读取时分析 220 10.1.2 写入时分析 221 10.1.3 选择一种解决方案 222 10.2 OOPS的事件流 223 10.2.1 货车事件与实体 223 10.2.2 货车司机事件与实体 224 10.2.3 OOPS的事件模型 224 10.2.4 OOPS的事件归档 226 10.3 使用Amazon Redshift 227 10.3.1 Redshift介绍 227 10.3.2 配置Redshift 229 10.3.3 设计事件数据仓库 232 10.3.4 创建事件宽表 235 10.4 ETL和ELT 237 10.4.1 加载事件 237 10.4.2 维度扩展 240 10.4.3 数据易变性 244 10.5 分析 244 10.5.1 分析1:谁更换机油的次数 多? 245 10.5.2 分析2:谁是 不可靠的客户? 245 10.6 本章小结 247 1章 写入时分析 249 11.1 回到OOPS 250 11.1.1 配置Kinesis 250 11.1.2 需求收集 251 11.1.3 写入时分析算法 252 11.2 构建Lambda函数 256 11.2.1 配置DynamoDB 256 11.2.2 AWS Lambda 257 11.2.3 配置Lambda与事件建模 258 11.2.4 重温写入时分析算法 261 11.2.5 条件写入DynamoDB 265 11.2.6 后的Lambda代码 268 11.3 运行Lambda函数 269 11.3.1 部署Lambda函数 270 11.3.2 测试Lambda函数 272 11.4 本章小结 274 附录 AWS入门 277 A.1 设置AWS账户 277 A.2 创建用户 278 A.3 设置AWS CLI 283 |
作者介绍 | |
Alexander Dean作为共同创始人与技术负责人研发了Snowplow Analytics,这是一款开源的事件处理与分析平台。 |
编辑推荐 | |
“事件”对于开发者而言是个熟悉的词,各种开发框架、编程语言中都或多或少有“事件”的概念,但很少有书籍谈及如何运用事件对系统建模。“流”的概念亦是如此,计算机世界中充斥着各种流:输入输出流、网络流,还有近几年出现的流计算。而《事件流实战》把事件与流的概念结合在一起,展示了一种崭新的架构;通过流这种数据架构在系统之间传递事件,不仅解除了系统间的耦合,也为系统带来了更好的扩展性,同时数据分析师可以自由地开展各种分析。 |