Flink (全称 Apache Flink )是一个非常主流的开源分布式流处理框架 ,现在也被广泛称为流批一体计算引擎。
简单一句话概括:
Flink 是一个专门用来实时处理海量数据流的"大杀器",同时也能高效处理离线批数据。
通俗解释:Flink 到底是干嘛的?
想象你家门口有个永不停歇的水龙头(数据源,比如手机APP用户行为、传感器、日志、订单、监控指标......),水(数据)源源不断流出来。
- 传统批处理(如Hive、Spark批处理):等水桶装满一大桶了再去处理(延迟高,可能几小时甚至一天)。
- 微批处理(如Spark Streaming):每隔几秒/分钟处理一小批(延迟还是秒级)。
- Flink:水一滴一滴出来就立刻处理(毫秒~亚秒级延迟),还能记住之前的状态(比如累计UV、最近1小时最高温度、是否连续3次登录失败等),出错还能自动恢复,保证数据不丢不重。
所以 Flink 最核心的特点是:真正的流式处理 + 强大的状态管理 + exactly-once(精确一次)语义。
Flink 的几个最关键卖点(为什么很多人选它)
| 特点 | 说明 | 比别人强在哪里? |
|---|---|---|
| 真正的流处理 | 数据一来就处理,不是攒一堆再算 | 延迟比Spark Streaming低很多 |
| Exactly-once | 即使机器宕机重启、数据重放,也保证结果只算一次 | 金融、风控、订单等场景必须的 |
| 事件时间处理 | 能正确处理乱序、迟到数据(比如网络延迟导致昨天的数据今天才到) | 实时报表、监控很实用 |
| 状态超强 | 支持超大状态(TB级),增量Checkpoint,恢复快 | 能做复杂的窗口、去重、关联、模式匹配 |
| 流批统一 | 同一套代码/引擎,既能跑实时,也能跑离线批处理 | 开发维护成本低(Flink 1.11+ 越来越彻底) |
| SQL + Table API | 写SQL就能做流处理(支持Kafka、Hive、ClickHouse等连接器) | 非算法工程师也能快速上手 |
常见使用场景(国内大厂几乎都在用)
- 实时大屏、实时报表(双11、618那种)
- 风控、欺诈检测
- 实时ETL(从数据库CDC同步到下游)
- 用户行为实时分析(UV、留存、转化漏斗)
- 推荐系统实时特征计算
- IoT设备监控、报警
- 日志实时清洗、指标计算
目前(2026年初)状态
- 最新主流版本:2.x 系列(2.0+ 已发布一段时间,K8s原生支持更好)
- 国内社区非常活跃(阿里在Flink上投入巨大,Ververica是Flink商业化公司)
一句话总结:
如果你需要低延迟、数据不丢不重、状态很复杂、既要实时又要批处理的场景,Flink 基本是目前开源界最强的那一批选择之一。