apache-flink - Apache flink - 如何让源函数等待回填状态
问题描述
我们使用 flink 通过连接流来丰富我们的数据流。
例如:我们的数据流可能是出租车,我们的丰富可能是出租车司机。
考虑这样的拓扑:
BroadcastStream<TaxiDrivers> taxiDrivers = env.addSource(enrichments)
.broadcast(MAP_DESCRIPTOR)
env.addSource(taxiRidesSource())
.connect(taxiDrivers)
.process(enrichWithTaxiDrivers())
.output(someOutput())
如果由于某种原因我们应该丢失我们的 Flink 状态,我们可以将消息重新发布到 taxDriver 源以再次恢复状态。
那么出了什么问题呢?
当新的taxiRides 在我们完成回填状态之前到达时,就会出现像这样回填我们的状态的问题。
我们已经考虑过缓冲enrichWithTaxiDrivers()
函数的丰富性,或者将我们的源函数扩展到pause
但感觉都不是一个干净的解决方案。
什么是让主流(出租车)等待或暂停直到回填完成的好方法?
解决方案
推荐阅读
- c# - C#使用字节缓冲区下载文件会导致奇怪的行为
- javafx - 状态改变时更新 fxml 标签
- loopbackjs - 这是什么意思?500 错误:架构无效:data.$ref 应匹配格式“uri-reference”
- r - 提高箱线图的可读性
- rust - 为什么在 rust 函数的末尾 Ok(()) 之后没有分号?
- docker - 请求重启后 docker 容器
- python - 从 txt 文件一次打印 10 个单词
- javascript - 如何获取使用呈现的pdf文档的当前页码
- python - 在 PostgreSQL (Django) 中为二维表建模
- javascript - Javascript Filter Function Not Allowing Removal of Newline Characters