使用 Flink 可以开发实时流处理和批处理的应用,本课程主要是聚焦在 Flink 在实时流处理这个方面,我们把 Flink 在实时流处理方面应用的技术称为 Flink Streaming
Flink Streaming 特点
1:同时支持 Event-time 和 Processing-time 语义,而且切换很方便
a. Event-time 语义主要是保证数据乱序情况下计算结果的一致性和精确性
b. Processing-time 语义主要是满足低延迟的应用
2:保证 Exactly-once 状态一致性
3:Flink 应用可以运行在上千个 cores 上,所以在处理每秒百万事件,延迟只是毫秒级
4:简单易用且非常灵活的 API ,包括各种场景的窗口 API、各种状态类型的 API 等
5:可以连接 Kafka、ES、HDFS 等常用数据存储系统,也可通过 JDBC 连接各种数据库
Flink Vs Spark
Spark 是批处理起家的,它的本质是批处理,Spark Streaming 是基于 Spark 的批处理开发的。所以,Spark Streaming 是一种近实时计算技术,适合秒级别延迟的应用。
Flink Streaming 是一种真正意义上的实时处理技术,适用于对延迟要求很高的应用。Flink 也支持批处理,但是 Flink 的批处理是基于 Flink Streaming 的流处理而开发的。
1:批处理:数据不能实时计算,但是批处理的逻辑可以非常的复杂
2:实时流处理:数据可以实时计算,但是计算逻辑相对比较简单
所以,对于计算逻辑非常复杂的应用,建议使用 Spark,对于实时要求非常高的场景,建议使用 Flink Streaming
Flink Streaming 在处理复杂点的实时流处理场景 (比如各种窗口、状态等) 真的要比 Spark Streaming 要好用多了,谁用谁知道。
学完本课程你的收获
1:掌握 Flink Streaming 核心原理
2:可以使用 Flink Streaming 开发企业中的项目
本课程四大特色
1:案例驱动:所有 API 的讲解都是以实际应用案例为背景进行讲解
2:手写代码:课程中所有的代码都是手把手的带你编写的
3:原理精辟:对于原理的讲解,没有一句啰嗦话,每句都直指要点,并清晰讲解
4:实战丰富:从集群的安装,到集群上运行丰富的实战案例,再到集群集成到 Hadoop 生态体系,一路实战到底
什么同学适合学习本课程
1:具备 Java SE 基础
2:具备 Linux 基础知识,会 Linux 基本命令
3:熟悉 Kafka 消息中间件
4:如果有大数据相关经验的话更佳,如果没有的话,后面的和 Hadoop 集成章节可能听不懂
课程大纲