我正在 Flink 有状态函数中实现一个用例。我的规范强调从业务工作流的有状态函数开始 (换句话说,一组有状态函数 f1、f2、... fn被顺序或并行或两者调用)。有状态函数 f等待返回结果以更新本地状态,它还启动超时回调,即给自己的消息。在超时时,f 检查本地状态是否已更新(它已收到结果),如果是这种情况,生命是好的。
但是,如果在超时时 f 发现它还没有收到结果,它必须启动一个补偿工作流来撤消有状态函数 f1、f2、... fn可能收到的任何更改。
Flink 有状态功能框架是否支持设计模式/用例等,还是应该在应用程序级别实现?实现这种解决方案的最简单设计是什么?例如,如何知道工作流有状态函数 f1, f2, ... fn 的哪些函数受到超时调用(控制流已超时)的影响?Flink 状态功能以及集成消息和状态的概念如何促成这种模式?
谢谢你。