Flink简介、基本原理、架构图

Flink是什么

Flink是一款支持有状态运算的流计算引擎。

支持有状态运算是指数据的计算过程中可以保存计算的中间过程状态,比如我们要计算一个整数数据流的求和,那么我们就需要一个中间变量把数据流中的每一项数据加到这个变量上。而这个变量就是计算的中间状态。Flink框架会帮你管理状态的保存和复原。

流计算是指我们要针对一个数据流进行源源不断的计算,产出实时的结果。比如说我们曾经看到过天猫淘宝的双11大屏,上面有当前的GMV成交量的数据,这个数字在屏幕上疯狂的跳动。这就是通过流计算产出的实时GMV成交量数据。

Flink有以下特性:

  • 应用场景丰富:支持事件驱动的应用
  • 计算结果准确:支持Exactly-Once的语义,确保数据一致性。能正确处理延迟达到的数据。
  • API用法灵活:提供了分层次的API,有高层次使用方便的API也有低层次灵活扩展的API。
  • 运维操作方便:部署灵活,支持高可用。
  • 支持大规模扩容:支持水平扩容的架构。支持数量大的数据状态。支持增量检查点。
  • 计算性能优秀:数据处理的延迟量低,吞吐量高,在内存中完成所有的计算过程。

Flink适用场景

事件驱动型应用

事件驱动应用指的是这个应用程序从一个地方获取到事件之后,触发一些动作,或者把这些数据更新到数据库里面,这种就是事件驱动型应用。下图就是传统应用和事件驱动型应用的差别。

事件

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink 回撤(retraction)是在流式处理中,用于纠正之前错误计算结果的机制。当数据流经过一系列的处理操作后,某些数据的处理结果可能会发生变化,需要对之前的计算结果进行修正。Flink 的回撤机制可以帮助我们有效地处理这种情况。 Flink 回撤的原理是基于增量更新的方式进行的。当一个数据元素经过处理后,产生了新的结果,Flink 会将这个新结果与之前的结果进行比较,如果有变化,则将新结果发送给下游操作,并且对之前的结果进行撤销。这样可以确保之前的错误结果被正确的结果所替代。 在实现回撤的过程中,Flink 使用了两种类型的记录:正常记录和回撤记录。正常记录用于传递数据流,而回撤记录用于指示之前计算结果的撤销。Flink 的内部处理引擎会根据这两种记录类型进行增量更新和撤销操作,以保证最终的计算结果是正确的。 值得注意的是,Flink 回撤机制的性能表现非常好,因为它能够利用数据流的特性进行增量更新,而不需要重新计算所有的数据。这使得 Flink 在处理大规模数据时能够做到高效和快速地修正之前的错误计算结果。 总之,Flink 回撤的原理是基于增量更新和撤销操作,通过对比新的计算结果和之前的结果,保证最终的计算结果是准确的。这种机制在流式处理中非常重要,可以帮助我们处理数据计算过程中可能出现的误差和错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值