Flink 状态 TTL 如何限制状态的生命周期

Posted @SmartSi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink 状态 TTL 如何限制状态的生命周期相关的知识,希望对你有一定的参考价值。

传送门:Flink 系统性学习笔记


Flink 1.6 版本

很多有状态流应用程序的常见需求是能够控制应用程序状态的访问时长以及何时删除它。这篇文章介绍了在 1.6.0 版本添加到 Flink 的状态生命周期时间(TTL)功能。

下面我们会介绍这个新的状态 TTL 功能的动机并讨论其用例。此外,我们还会展示如何使用和配置它,以及解释 Flink 如何使用 TTL 管理内部状态。文章最后还展望了对未来的改进和扩展。

1. Flink有状态流处理

任何实时流应用程序都会包含有状态操作。Flink 为容错状态流处理提供了许多强大的功能。用户可以选择维护状态的不同状态原语(原子值,列表,映射)和状态后端(堆内存,RocksDB)。处理函数中的应用程序逻辑可以访问和修改状态。通常,状态会与 Key 相关联,允许类似于 Key/Value 存储的可伸缩处理和存储。Apache Flink 透明地管理状态分布(包括对扩容和缩容的支持),并定期执行 Checkpoint,以便在出现故障时恢复作业,并提供状态 Exactly-Once 一致性语义的保证。

在文章的其余部分中,我们会介绍一个有状态应用程序示例,该应用程序提取用户登录事件,保存每个用户的最后一次登陆时间,以改善高频访问用户的的体验。

2. 状态的瞬态性质

状态

以上是关于Flink 状态 TTL 如何限制状态的生命周期的主要内容,如果未能解决你的问题,请参考以下文章

iOS程序生命周期 AppDelegate

iOS应用程序生命周期(前后台切换,应用的各种状态)详解

Flink State TTL 详解

Flink State TTL 详解

如何在 SwiftUI 应用程序生命周期中更改特定视图的状态栏颜色?

Java线程的生命周期