大数据流处理框架对比

流处理框架 Flink SparkStreaming Storm KafkaStreams

交付保障 数据一致性

Atleast-once( 至少会被处理一次 可能会重复)
Atmost-once( 最多会被处理一次 可能会丢数据)
Exactly-once( 只会被处理一次 不会重复也不会丢失

故障容错

分布式系统 任务故障、节点故障、网络故障等
状态持久化 恢复处理
kafka offset存储在zookeeper中

状态管理

性能
延迟 吞吐量 可伸缩性

高级功能(Event Time Processing, Watermarks, Windowing)

复杂事件处理 CEP

流处理的两种类型

Native流

每个传入的记录一到达就会被处理,而不必等待其他记录。

小批量/微批处理 micro batch

延迟 vs 吞吐量

Storm jstorm

优点

低延迟,真正的流处理
适合简单的流处理场景

缺点

不支持状态管理
没有事件时间处理,聚合,窗口,会话,水印等高级功能
至少保证一次

Spark Streaming

优点

支持Lambda架构
高吞吐量,适用于不需要低延迟的应用场景
微批次,默认容错
简单易用的高级API
社区活跃
支持 Exactly-once 语义

缺点

不是真正的流处理,不适合低延迟要求
要调整的参数太多
许多高级功能落后于Flink

flink

优点

创新
第一个真正的流处理框架,具有Event Time Processing, Watermarksd等高级功能
低延迟,高吞吐量,可根据要求进行配置
自动调整,需要调整的参数较少,调优方便
支持 Exactly-once 语义

Kafka Steams

优点

轻量级库,适用于微服务,物联网应用
支持 Exactly-once 语义
基于kafka
支持Stream连接,内部使用rocksDb来维护状态

缺点

捆绑kafka
技术较新,尚未得到广泛使用
不适用于较为复杂的场景

选型考虑

延迟要求高

毫秒级 storm、kafka steams、flink
秒级 flink、spark streaming

功能复杂度

高级功能需求 flink、spark streaming
功能简单 storm、kafka streams

声明

原创未知 仅供个人学习 转载请说明情况:-)在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值