对于 Flink 未来的一个可能的方向

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 对于 Flink 未来的一个可能的方向

  对于 Flink 未来的一个可能的方向,Stephan 继续表达了他对 Application 这种偏在线服务的场景的兴趣。他先是将我们平时所说的批处理和流计算总结为 Data Processing,同时将消息驱动和数据库之类的应用总结为 Applications,而 Stream Processing 就是连接这两种看起来截然不同的场景的桥梁。

  我在一开始听到这个的时候也有点一头雾水,不明就里的感觉,经过这几天对这个问题的思考,有了一些自己的理解,我将在文末展开进行解释。提到 Application,就不得不提现在很流行的 FaaS(Function as a Service)。在这个领域,Stephan 觉得大家都忽视了 State 在这里面的重要性。比如一个典型的 Application 场景,一般都会具备以下这些特点:

  整个 Application 会有一个或者多个入口,计算逻辑由消息来驱动

  具体的业务逻辑被拆分成粒度较小的几个单元,每个逻辑单元使用一个 Function 来执行具体的逻辑

  Function 之间会互相调用,一般来说我们也会将这些调用设计为异步的模式

  每个 Function 的计算逻辑可能会需要一些状态,比如可以使用数据库作为状态的存储

  在完整的计算逻辑完成之后,我们会通过一个统一的出口返回处理的状态

  在这个场景里,我们看到了至少三点需求:

  计算逻辑由消息驱动

  计算逻辑和互相调用的关系必须可以比较灵活的进行组织

  计算逻辑需要状态的支持,并且在某些情况下,需要保证 exactly once 的处理语义

  这里面属第三点最难做。大家可以想象一下,假如现在我们的 Application 要处理类似电商场景下单这样的过程,同时我们依赖数据库作为这个应用的状态存储。我们有一个专门的库存管理逻辑和一个下单逻辑。在一个完整的购买逻辑里,我们需要先调用库存管理模块,检查下该商品是否有库存,然后将该商品的库存从数据库里减去1。这一步成功之后,我们的服务再继续调用下单逻辑,在数据库里面生成一个新的订单。

  在一切都正常的时候,这样的逻辑还是比较简单的,但一旦有错误出现就会相当麻烦。比如我们已经将库存减掉,但是在生成订单的过程中发生了错误,这样我们还得想办法让库存进行回滚。一旦类似的业务逻辑单元变多之后,你的应用代码将变得异常复杂。这个问题就是典型的 end-to-end exactly once,我们希望一个错综复杂的计算流程,要么全部一起成功,要么全部失败,就当它完全没发生过一样。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
6月前
|
自然语言处理 监控 数据挖掘
【Flink】Flink中的窗口分析
【4月更文挑战第19天】【Flink】Flink中的窗口分析
|
SQL 机器学习/深度学习 运维
实时计算 Flink:基于 Apache Flink 构建的大数据计算平台(附白皮书)
实时计算 Flink版是阿里云提供的基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由Apache Flink创始团队官方出品。
|
2月前
|
消息中间件 资源调度 API
Apache Flink 流批融合技术介绍
本文源自阿里云高级研发工程师周云峰在Apache Asia Community OverCode 2024的分享,内容涵盖从“流批一体”到“流批融合”的演进、技术解决方案及社区进展。流批一体已在API、算子和引擎层面实现统一,但用户仍需手动配置作业模式。流批融合旨在通过动态调整优化策略,自动适应不同场景需求。文章详细介绍了如何通过量化指标(如isProcessingBacklog和isInsertOnly)实现这一目标,并展示了针对不同场景的具体优化措施。此外,还概述了社区当前进展及未来规划,包括将优化方案推向Flink社区、动态调整算子流程结构等。
400 31
Apache Flink 流批融合技术介绍
|
流计算 分布式计算 消息中间件
用Flink取代Spark Streaming!知乎实时数仓架构演进
- 实时数仓 1.0 版本,主题:ETL 逻辑实时化,技术方案:Spark Streaming。 - 实时数仓 2.0 版本,主题:数据分层,指标计算实时化,技术方案:Flink Streaming。 - 实时数仓未来展望:Streaming SQL 平台化,元信息管理系统化,结果验收自动化。
用Flink取代Spark Streaming!知乎实时数仓架构演进
|
3月前
|
机器学习/深度学习 人工智能 运维
美团 Flink 大作业部署问题之Flink在生态技术演进上有什么主要方向
美团 Flink 大作业部署问题之Flink在生态技术演进上有什么主要方向
|
5月前
|
消息中间件 分布式计算 Kafka
深度分析:Apache Flink及其在大数据处理中的应用
Apache Flink是低延迟、高吞吐量的流处理框架,以其状态管理和事件时间处理能力脱颖而出。与Apache Spark Streaming相比,Flink在实时性上更强,但Spark生态系统更丰富。Apache Storm在低延迟上有优势,而Kafka Streams适合轻量级流处理。选型考虑延迟、状态管理、生态系统和运维成本。Flink适用于实时数据分析、复杂事件处理等场景,使用时注意资源配置、状态管理和窗口操作的优化。
|
6月前
|
缓存 监控 分布式数据库
Flink应用优化实践
Flink应用优化实践
55 0
|
6月前
|
SQL 分布式计算 Java
2021年最新最全Flink系列教程__Flink综合案例(九)
2021年最新最全Flink系列教程__Flink综合案例(九)
67 0
|
SQL Apache 流计算
flink1.18发布与flink-cdc有重大相关调整吗?
flink1.18发布与flink-cdc有重大相关调整吗?
176 1
|
SQL API 流计算
Flink教程(18)- Flink阶段总结
Flink教程(18)- Flink阶段总结
58 0
下一篇
无影云桌面