Flink基础教程
内容介绍
近年来,流处理变得越来越流行。作为高度创新的开源流处理器,Flink拥有诸多优势,包括容错性、高吞吐、低延迟,以及同时支持流处理和批处理的能力。本书分为6章,侧重于介绍Flink的核心设计理念、功能和用途,内容涉及事件时间和处理时间、窗口和水印机制、检查点机制、性能测评,以及Flink如何实现批处理。 本书面向有兴趣学习如何分析大规模流数据的读者。
目录
- 第1章 为何选择Flink 1
- 1.1 流处理欠佳的后果 2
- 1.1.1 零售业和市场营销 2
- 1.1.2 物联网 3
- 1.1.3 电信业 5
- 1.1.4 银行和金融业 5
- 1.2 连续事件处理的目标 6
- 1.3 流处理技术的演变 6
- 1.4 初探Flink 9
- 1.5 生产环境中的Flink 12
- 1.5.1 布衣格电信 13
- 1.5.2 其他案例 14
- 1.6 Flink的适用场景 15
- 第 2章 流处理架构 17
- 2.1 传统架构与流处理架构 17
- 2.2 消息传输层和流处理层 18
- 2.3 消息传输层的理想功能 19
- 2.3.1 兼具高性能和持久性 20
- 2.3.2 将生产者和消费者解耦 20
- 2.4 支持微服务架构的流数据 21
- 2.4.1 数据流作为中心数据源 22
- 2.4.2 欺诈检测:流处理架构用例 22
- 2.4.3 给开发人员带来的灵活性 24
- 2.5 不限于实时应用程序 24
- 2.6 流的跨地域复制 26
- 第3章 Flink 的用途 29
- 3.1 不同类型的正确性 29
- 3.1.1 符合产生数据的自然规律 29
- 3.1.2 事件时间 31
- 3.1.3 发生故障后仍保持准确 32
- 3.1.4 及时给出所需结果 33
- 3.1.5 使开发和运维更轻松 33
- 3.2 分阶段采用Flink 34
- 第4章 对时间的处理 35
- 4.1 采用批处理架构和Lambda 架构计数 35
- 4.2 采用流处理架构计数 38
- 4.3 时间概念 40
- 4.4 窗口 41
- 4.4.1 时间窗口 41
- 4.4.2 计数窗口 43
- 4.4.3 会话窗口 43
- 4.4.4 触发器 44
- 4.4.5 窗口的实现 44
- 4.5 时空穿梭 44
- 4.6 水印 45
- 4.7 真实案例:爱立信公司的Kappa 架构 47
- 第5章 有状态的计算 49
- 5.1 一致性 50
- 5.2 检查点:保证exactly-once 51
- 5.3 保存点:状态版本控制 59
- 5.4 端到端的一致性和作为数据库的流处理器 62
- 5.5 Flink 的性能 65
- 5.5.1 Yahoo! Streaming Benchmark 65
- 5.5.2 变化1:使用Flink 状态 66
- 5.5.3 变化2:改进数据生成器并增加吞吐量 67
- 5.5.4 变化3:消除网络瓶颈 68
- 5.5.5 变化4:使用MapR Streams 69
- 5.5.6 变化5:增加key 基数 69
- 5.6 结论 71
- 第6章 批处理:一种特殊的流处理 73
- 6.1 批处理技术 75
- 6.2 案例研究:Flink 作为批处理器 76
- 附录 其他资源 79
- 关于作者 84