如何根据事件处理已经可用的状态来自 flink 中的不同流

How to process an already available state based on an event comes in a different stream in flink

我们正在努力根据其上的 activity 推导帐户的状态。我们根据帐户上的用户 activity 计算并保留 expiryOn 日期(表示帐户到期的暂定未来日期)。

我们有一个手动日期更改事件,它给出了一个日期,根据该日期发出帐户状态为已过期。

我想知道实现此目标的最佳方法是什么。 所以,我的问题是,与 expiryOn 日期的计算相比,日期更改事件发生在未来,广播状态是否可以解决这个问题?如果是,请建议方法。 或者,是否有更好的方法,如 Table API 来解决这个问题?

广播状态适用于您需要共享信息或调用非键控操作的情况(如本例),因此无法发送到一个相关实例。

如果您需要存储广播状态,请记住每个实例都会在堆上存储广播状态的副本,并将该副本包含在其检查点中。

如果您正在使用 context.applytokeyedstate,请小心更改确定性的键控状态——否则,如果广播运算符的某些实例发生故障和恢复,将更改应用到键控状态,而其他实例没有,您最终可能会出现不一致。