数据岗位面试题更新 2026-08-05

请阐述 Apache Flink 的基本定位与核心特性,并对比说明它和 Spark Streaming 在流处理模型上的主要差异。

数据技术原理方案权衡Apache FlinkSpark Streaming

考察说明

考查对 Flink 本质和流处理模型差异的理解,判断是否真正掌握其区别于批处理框架的核心思想。

回答思路

  1. 【回答框架 1】Flink 是一个开源的分布式流处理引擎,核心是真正的流处理(True Streaming),每个事件到达即被处理,实现低延迟和 Exactly-Once 状态一致性,并支持事件时间处理与状态管理。
  2. 【回答框架 2】Spark Streaming 本质上是微批处理(Micro-batch),将数据流按固定间隔(如 2 秒)切分为小批次,通过 Spark 批处理引擎执行,因此延迟一般在秒级。
  3. 【回答框架 3】绝对对比差异点:处理模型上,Flink 是逐条事件驱动,Spark Streaming 是批量处理;延迟上,Flink 更低(毫秒级),Spark Streaming 较高(秒级);流处理能力上,Flink 原生支持事件时间和 Watermark,能处理乱序数据,而 Spark Streaming 主要在微批框架内实现;状态管理上,Flink 提供分布式、可检查点的状态存储,Spark Streaming 的窗口状态相对受限。
  4. 【关键点 1】Flink 是真正的流处理引擎,逐条处理事件,延迟低。
  5. 【关键点 2】Spark Streaming 采用微批模型,延迟较高。
  6. 【关键点 3】Flink 原生支持事件时间与状态管理,适合复杂事件处理。
  7. 【关键点 4】选择取决于场景:需要毫秒级延迟选 Flink,批流统一可用 Spark。
  8. 【易错点 1】勿混淆 Spark Streaming 与 Structured Streaming(后者基于微批和持续处理)。
  9. 【易错点 2】版本差异可能导致特性不同,需说明基于通用概念,具体以实测为准。
  10. 【易错点 3】延迟对比不能绝对化,需结合具体配置和场景。