apache-flink - Flink 用于无状态处理

标签 apache-flink flink-streaming stateless event-driven-design

我是 flink 新手,我们的用例涉及无状态计算。 读取事件、处理事件并保存到数据库中。但 Flink 文档从未谈到无状态处理。用于查找无状态示例或文档的任何示例存储库。

最后,对于这个用例,哪种 Flink 模型适用?流应用程序或事件驱动的应用程序。

最佳答案

文档中非常强调有状态流处理,因为社区为创建了一个高性能、容错的流处理器而感到自豪,即使在大规模操作有状态管道时,该处理器也能提供一次性保证。但你当然可以在不使用状态的情况下充分利用 Flink。

但是,真正的无状态应用程序很少见。即使应用程序没有执行任何明显有状态的操作(例如窗口或模式匹配),状态也需要提供一次性的、容错的语义。 Flink 可以确保每个传入事件在接收器中仅保存一次,但这样做需要 Flink 的源和接收器保持状态,并且必须对该状态进行检查点(并在故障后恢复)。这一切都是透明处理的,除了您需要启用和配置检查点(假设您关心一次性保证)。

Flink 文档包含关于 Data Pipelines and ETL 的教程其中包括一些无状态的示例和练习 ( https://github.com/apache/flink-training/tree/master/ride-cleansing )。

Flink 具有三个主要 API:

关于apache-flink - Flink 用于无状态处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65213009/

相关文章:

apache-flink - Flink Job 突然崩溃,错误 : Encountered error while consuming partitions

apache-flink - Flink流事件时间窗口排序

iphone - 异步无状态API

javascript - Stateful 和 Functional 无状态组件

java - Apache Flink - 自定义 java 选项在作业中无法识别

java - 限制和跳过操作在无序时变得无状态

java - 在 Dataset<Row> 对象中转换 Flink CEP 表时出错

java - 如何增加 Flink taskmanager.numberOfTaskSlots 以在没有 Flink 服务器的情况下运行它(在 IDE 或 fat jar 中)

java - 在 Flink 中合并多个流加入

apache-flink - Flink 键控流中记录的排序