按实时流处理场景、数据量级、开发语言、部署架构分成四大类:通用全能型、轻量边缘型、批流一体、消息流引擎(底层流底座),附带适用场景、优缺点、选型建议。
一、企业级全能流计算(大数据生产主流)
1. Apache Flink(当前工业界首选)
核心定位:标准实时流计算框架,真正流优先,批是流的特例
核心能力:
精准一次(Exactly-Once)端到端一致性,Checkpoint+Savepoint 故障恢复
事件时间、水印 Watermark、乱序数据处理、窗口(滚动 / 滑动 / 会话 / 全局)
批流统一 API,流处理 / 离线分析一套代码
内置 CEP 复杂事件处理、SQL 流(Flink SQL)、状态后端(RocksDB 持久化大状态)
支持 Kafka、MySQL、Hive、Redis、Iceberg、Pulsar 等上下游
开发语言:Java/Scala,Python API,Flink SQL(低代码)
部署:Yarn/K8s/Standalone,支持集群弹性扩缩容
适用场景:实时数仓、实时指标大屏、风控实时规则、实时 ETL、实时推荐、实时日志清洗
优势:实时能力最强、生态完善、大厂(阿里、字节、腾讯、美团)大规模落地
劣势:学习曲线较高,大状态运维有一定成本
2. Apache Spark Streaming / Spark Structured Streaming
核心定位:批为主、流为辅,批流一体,大数据离线 + 实时混合场景
两种流模式:
Spark Streaming:微批(DStream),按时间分片处理,延迟秒级
Structured Streaming:结构化流,事件时间、水印、流 SQL,接近 Flink 语义
生态:完美兼容 Spark Core/Spark SQL/Spark MLlib,离线数仓无缝切换实时
适用场景:离线 + 实时统一平台、海量日志统计、机器学习实时特征工程
优势:Spark 生态无敌,大数据团队上手成本低
劣势:微批架构天然延迟高于 Flink,Exactly-Once 实现复杂,乱序数据处理能力弱于 Flink
二、轻量级流计算(中小流量、边缘、云原生轻量化场景)
1. Apache Kafka Streams
核心定位:基于 Kafka 的嵌入式流处理,无独立集群,代码内嵌流逻辑
特点:
不需要额外集群,应用程序直接依赖 Kafka 客户端做流计算
状态存储在 Kafka 主题,轻量 Exactly-Once
支持窗口、流 join、转换、过滤、聚合
适用场景:轻量化实时处理、微服务内部流逻辑、单节点中小流量数据清洗、Kafka 生态轻量化任务
优势:架构极简、运维成本极低、和 Kafka 深度绑定
劣势:不支持大规模集群横向扩展、大状态支持差、无独立调度
2. Redpanda Transform / Tinybird
Redpanda 兼容 Kafka 协议,内置轻量级流转换,无需额外计算引擎,适合边缘、实时指标。
3. Spring Cloud Stream(开发框架,非独立引擎)
基于 Kafka/RabbitMQ 的微服务流开发框架,封装底层流 API,适合 Java 微服务简单实时处理,不适合大规模复杂聚合。
三、批流一体实时数据平台(存储 + 计算一体化,实时数仓专用)
1. Apache Doris Stream Load + 实时视图
Doris 是 OLAP 分析引擎,内置流导入能力,配合 Flink/Kafka 做实时写入,支持实时聚合、实时大屏。
2. Apache Iceberg / Paimon(流存储层,配合 Flink 使用)
不是计算引擎,是流批一体存储表格式,常和 Flink 搭配实现实时数仓分层,解决流数据持久化、增量快照。
3. RisingWave(新兴云原生流数据库)
核心定位:分布式流数据库,流计算 + 存储二合一,SQL 优先
特点:
完全 SQL 化开发,不用写 Java/Scala 代码,上手极快
内置流状态存储、持久化、故障恢复,支持流表 Join、窗口聚合
云原生 K8s 友好,弹性扩缩容
适用场景:实时指标平台、实时报表、实时数仓轻量化建设、中小企业实时业务
优势:纯 SQL、运维简单、云原生友好
劣势:生态成熟度略低于 Flink,超大规模互联网落地案例较少
四、消息队列底层流底座(流计算必备数据源 / 存储)
本身不做复杂计算,是流计算的数据管道,所有流引擎几乎都兼容:
Apache Kafka:行业标准,高吞吐、持久化、分区横向扩展,绝大多数流计算数据源
Apache Pulsar:云原生消息队列,分层存储、多租户、低延迟,大数据实时场景逐步替代 Kafka
Redpanda:Kafka 兼容,C++ 实现,低资源占用,边缘、中小集群首选
五、小众专项流计算工具
Apache Beam:统一流批编程模型,一套代码可运行在 Flink/Spark/GCP Dataflow,多云多引擎兼容,适合跨平台统一开发规范
Apache NiFi:可视化拖拽式数据流工具,侧重数据采集、路由、转换,低代码,适合 ETL、日志采集、边缘数据流转,复杂聚合能力弱
Apache Storm(老旧):初代实时流引擎,纯流式无批能力,延迟极低,但状态一致性差,目前已基本被 Flink 淘汰,仅老旧存量系统使用
选型对比表
快速选型建议
互联网大厂、高并发、复杂实时业务(风控 / 实时数仓 / 推荐) → Apache Flink(首选)
公司现有 Spark 集群,离线为主,少量实时需求 → Spark Structured Streaming
中小团队、不想维护复杂集群、只做简单实时清洗 → Kafka Streams
只想写 SQL 做实时指标、云原生部署、运维简单 → RisingWave
需要可视化拖拽做数据采集、简单数据流转 → Apache NiFi
一套代码需要同时跑 Flink、Spark、云厂商流服务 → Apache Beam
底层消息管道通用选择:大规模集群选 Kafka;云原生多租户选 Pulsar;边缘轻量化选 Redpanda