Skip to main content

Kafka VS Flink

维度FlinkKafka
核心功能流式计算引擎分布式消息队列
主要用途处理、分析、转换数据存储、传输、分发数据
数据持久化计算后数据存储到外部系统持久化日志数据,可配置存储时间
顺序性支持 Exactly-Once 语义单分区内有序,多分区可能乱序
典型应用实时计算、事件检测、风控、数据清洗日志收集、数据管道、事件驱动架构
与 Kafka 关系从 Kafka 读取数据进行计算为 Flink 提供数据源或存储计算结果
  1. ETL 转换:数据清洗、格式转换、过滤等(map、filter、flatMap)。
  2. 实时聚合:窗口计算(sum、count、avg),按时间或 ID 聚合分析。
  3. 复杂事件处理(CEP):如风控、异常检测(基于规则或状态)。
  4. 机器学习 & 统计计算:A/B 测试、异常检测、实时特征计算。
  5. 数据 Join & 关联分析:流对流、流对表 Join,如订单流 & 支付流匹配。
  • Kafka 负责数据存储和传输(事件流)。
  • Flink 负责数据计算和分析(实时处理)。
  • 常见场景:实时日志分析、用户行为监测、金融风控、IoT 设备数据处理等。

总结

Kafka 主要是数据管道,负责存储和传输,Flink 主要是计算引擎,用于实时数据处理和分析。两者结合可以实现完整的实时数据处理系统。