写点什么

流计算:流式处理框架

用户头像
正向成长
关注
发布于: 2021 年 04 月 15 日
流计算:流式处理框架

流失处理框架

不同的流处理框架具有不同的特点,同时也适应不同的场景:

处理模式

对于流式处理框架而言,有两种完全不同的处理模式:

  • 原生流(Native)方式,将所有的数据一条一条地处理,例如,Storm、Samza 和 Flink。

  • 微批处理(Batch)方式,将输入数据以某个时间间隔 T 切分成多个微批量数据,之后对每个微批数据进行处理,例如 Spark Streaming、Trident 等。

消息传输保障

一般有三种消息保障:

  • At Most Once,表示每条消息传输次数为 0 次或 1 次,消息有可能会丢失,例如,Storm、Samza。

  • At Least Once,表示每条消息传输次数大于 1 次,消息有可能会重复但不会丢失,例如 Spark Streaming、Trident。

  • Exactly Once,表示每条消息只会精准地传输一次,消息既不会丢失也不会重复,例如,Flink。

容错机制

在企业日常生产环境中,有可能会发生网络故障、节点宕机或程序异常等,框架应该具备在发生错误导致任务中断后,可以恢复到之前成功的状态重新消费,具体的实现机制有:

  • 记录确认机制(Record ACKs)的容错机制,例如,Storm、Trident。

  • 基于日志的容错机制,例如,Samza。

  • 基于 RDD CheckPoint 的方式的容错机制,例如,Spark Streaming。

性能

流式框架的一些性能指标:

  • 延迟时间(Latency),其中 Storm、Samza 采用 Native 处理方式,其延时很低;其中 Storm 在实时性上表现更优,Spark Streaming、Trident 采用微批处理方式,其延时更高。

  • 吞吐量(Throughput),其中,Spark Streaming 和 Samza 优于 Storm 和 Trident。


参考资料

  • 《Spark Streaming 实时流式大数据处理实战》

发布于: 2021 年 04 月 15 日阅读数: 35
用户头像

正向成长

关注

正向成长 2018.08.06 加入

想要坚定地做大规模数据处理(流数据方向),希望结合结合批处理的传统处理方式,以及之后流批混合处理方向进行学习和记录。

评论

发布
暂无评论
流计算:流式处理框架