| 作者: | Josh Fischer and Ning Wang |
| 语言: | 英文 |
| 出版年份: | 2022 |
| 下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
《Grokking Streaming Systems: Real-time event processing》是一本由Manning出版社出版的流处理系统入门指南,专为希望掌握实时数据处理技术的开发者设计。本书作者Josh Fischer和Ning Wang都是Apache Heron项目的核心贡献者和项目管理委员会成员,在流处理领域有丰富的实践经验。本书采用独特的图解教学方式,通过大量精心设计的图表和实际案例,帮助读者深入理解流处理系统的核心概念和工作原理。与大多数技术书籍不同,本书采用框架无关的方式教学,让读者能够掌握通用概念,从而轻松适应任何流处理框架。
第一部分建立了流处理系统的基础知识体系。第1章从宏观角度介绍了流处理系统,通过对比应用程序、后端服务、批处理系统和流处理系统的不同架构,帮助读者理解流处理系统的独特价值。作者使用生动的比喻(如邮局系统vs装配线)来解释批处理与流处理的区别。
第2章是流处理的"Hello World",通过一个简单的收费站案例,引导读者构建第一个流处理作业。本章介绍了Streamwork框架(本书专门设计的简化流处理框架)的基本概念,包括源(Source)、算子(Operator)、汇(Sink)等核心组件,以及事件在系统中的流动过程。
第3章深入讲解并行化和数据分组,这是流处理系统扩展性的关键。本章介绍了数据并行性和任务并行性的区别,以及如何通过并行化组件来提高系统吞吐量。作者详细解释了洗牌分组(Shuffle grouping)和字段分组(Fields grouping)两种主要的数据分组策略,以及它们对事件顺序和系统性能的影响。
第4章专注于流图(Stream graph)概念,展示了流处理作业如何表示为有向无环图(DAG)。通过一个信用卡欺诈检测系统的案例,作者解释了流扇出(fan-out)和流扇入(fan-in)的概念,以及如何通过多个通道(channels)实现复杂的数据流模式。
第5章讨论交付语义(Delivery semantics),这是流处理系统可靠性的核心。本章详细讲解了三种主要的交付语义:至多一次(at-most-once)、至少一次(at-least-once)和恰好一次(exactly-once)。作者通过实际案例展示了如何通过确认机制(acknowledging)和检查点(checkpointing)来实现不同的交付保证。
第6章回顾了第一部分的核心概念,并为第二部分的高级主题做了铺垫。
第二部分深入探讨流处理系统的高级概念和实践。第7章讲解窗口计算(Windowed computations),这是流处理中处理无限数据流的关键技术。本章详细介绍了三种主要的窗口策略:固定窗口(Fixed windows)、滑动窗口(Sliding windows)和会话窗口(Session windows),以及它们在欺诈检测等实际场景中的应用。
第8章专注于连接操作(Join operations),这是将多个数据流合并处理的重要技术。通过一个车辆排放监测系统的案例,作者展示了如何在流处理中实现内连接(inner join)和外连接(outer join),以及窗口连接(windowed join)的特殊考虑。本章还讨论了物化视图(materialized view)在流处理中的应用。
第9章讨论背压(Backpressure)机制,这是流处理系统处理负载不平衡的关键技术。作者解释了容量(capacity)、利用率(utilization)和余量(headroom)的概念,以及当系统组件处理速度不匹配时如何通过背压机制来防止数据丢失或系统崩溃。
第10章深入有状态计算(Stateful computation),这是实现复杂流处理逻辑的基础。本章详细讲解了状态(state)的概念、状态与临时数据的区别、检查点的创建和加载机制,以及事件驱动的时间管理(event-based timing)。
第11章总结了全书的高级概念,并为读者提供了进一步学习的方向。
本书最大的特色是大量精心设计的图表。作者从最初的手绘草图开始,经过多次迭代,最终创建了清晰、直观的视觉化解释。这些图表不仅美观,更重要的是能够帮助读者直观理解复杂的流处理概念,这是纯文字描述难以达到的效果。
与大多数专注于特定框架(如Apache Flink、Apache Kafka Streams、Apache Spark Streaming)的书籍不同,本书采用框架无关的方式教学。作者专门设计了简化的Streamwork框架来演示核心概念,确保读者掌握的是通用原理,而不是特定框架的API。这种教学方法让读者能够轻松适应任何流处理框架。
本书采用"从简单到复杂"的渐进式教学方法。从最基本的流处理概念开始,逐步引入更高级的主题。每个新概念都通过实际案例进行讲解,确保读者能够理解概念的实际应用场景。
全书贯穿多个实际案例,包括收费站监控、信用卡欺诈检测、车辆排放监测、系统使用情况分析等。这些案例不仅展示了流处理技术的实际应用,还帮助读者理解如何将理论知识转化为实际解决方案。
两位作者都是Apache Heron项目的核心贡献者,在Twitter和Amplitude等公司有丰富的流处理系统实践经验。他们不仅理解理论概念,更重要的是知道这些概念在实际生产环境中的应用和挑战。
《Grokking Streaming Systems: Real-time event processing》是一本独特而实用的流处理入门指南。它通过精心设计的图表、渐进式的教学方法和框架无关的教学理念,帮助读者深入理解流处理系统的核心概念。无论你是希望将批处理系统迁移到实时处理,还是需要构建新的流处理解决方案,这本书都能提供宝贵的指导。通过本书的学习,读者将能够掌握流处理系统的基本原理,理解常见的设计模式和挑战,并为深入学习特定流处理框架打下坚实的基础。