Strom与Spark streamming与Flink对比

简介:

实时计算引擎相对于批处理计算引擎领域选择技术方案有很多,主流的方案包含有Flink、Spark streamming、strom、Kafka、Pulsar、Beam、Gearpump、Edgent、Samza、阿里MaxCompute、Hadoop等等。

主流实时计算引擎总体对比:

技术 Spark Streaming Storm Flink
架构 依赖spark生态,主从模式,每个Batch处理都依赖主(driver),可以理解为时间维度上的spark DAG(有向五环图)。 主从模式,且依赖zookeeper,处理过程中对主的依赖不大。 架构介于spark streaming和storm之间,主从结构与spark streaming相似,DataFlow Grpah与Storm相似,数据流可以被表示为一个有向图。 每个顶点是一个用户定义的运算,每向边表示数据的流动。
容错 WAL及RDD 血统机制 Records ACK机制 基于Chandy-Lamport distributed snapshots checkpoint机制
延迟 处理的是一个事件窗口内的所有事件。具有秒级高延迟。 处理的是每次传入的一个事件可实现亚秒级低延迟。 同Strom,单条事件处理可实现亚秒级低延迟
吞吐量 一般 一般 最高
数据处理保证 exactly once(实现采用Chandy-Lamport 算法,即marker-checkpoint ),可靠性较高。 at least once(实现采用record-level acknowledgments),Trident可以支持storm 提供exactly once语义。可靠性一般。 exactly once,可靠性较高
成熟度与活跃度 已经发展了一段时间,相对稳定 已经发展了一段时间,相对稳定。 新兴项目,蓬勃发展中,社区活跃度一直在上升。
易用性 支持SQL Steaming,Batch和STREAMING采用统一编程框架。 不支持SQL Steaming 支持SQL Steaming,Batch和STREAMING采用统一编程框架。
适用场景 不是真正的实时流处理框架,有历史包袱,但是其使用起来很简单,且天然对接Spark生态栈中的其他组件,社区支持较大,吞吐量较大,部署也很简单,UI也做的更加智能。所以,如果对延迟要求不高的情况下,建议直接使用Spark Streaming 即可。 大体上同 Spark Streaming,但是具备亚秒级延迟,速度上可以和 Flink 媲美,比起 Spark Streaming,其对实时性支持更好一些。但是在各方面的性能表现上,比 Flink 较差。 完全为实时流处理而诞生,没有历史包袱。如果对延迟性要求比较高的话,那么建议直接上 Flink。除了延迟较低外,其在API和容错上也是做的比较完善,使用起来相对来说也是比较简单的,部署容易,而且发展势头也越来越好。

Spark Streaming 架构图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Storm 架构图:
在这里插入图片描述
在这里插入图片描述
Flink 架构图:

在这里插入图片描述
在这里插入图片描述
参考:RangeYan

发布了226 篇原创文章 · 获赞 515 · 访问量 68万+

猜你喜欢

转载自blog.csdn.net/qq_32447301/article/details/104729011