Flink - 如何触发源刷新

问题描述 投票:0回答:1

我的程序有两个流 - 一个数据流和另一个丰富流。丰富流被广播并连接到数据流。丰富流偶尔会刷新,但有时对于数据流数据来说是陈旧的。我的要求是在发生这种情况时刷新浓缩流。

关于如何实现这一目标有什么建议吗?

apache-flink
1个回答
0
投票

对于您的特定用例,假设丰富是基于数据和丰富流之间的公共键值,并且您可以使用 HTTP 拉(与推)模型,那么我会推荐以下内容:

  1. 使用键值对数据流进行分区。
  2. 将此分区数据流运行到异步 IO 函数中,首先检查缓存,然后发出 HTTP 请求以获取适当的丰富数据。
  3. 将丰富数据保存在本地缓存中(例如使用Guava),您可以在其中控制缓存大小和TTL。

重启时缓存数据会丢失,但通常没关系。请注意,缓存需要是线程安全的,因为异步 HTTP 请求的完成将是多线程的。

© www.soinside.com 2019 - 2024. All rights reserved.