在Flink运算符中轮询外部数据源

时间:2019-02-22 20:03:53

标签: apache-flink flink-streaming

我有一个未加密的FilterFunction,其中保留了应过滤的一组项目。我需要定期从外部HTTP API更新此设置。当物品进来时,我们会检查它们是否在列表中,如果没有,则将其过滤掉。

一些具体问题:

  • ScheduledThreadPoolExecutor内是否有用于设置轮询器的最佳实践,例如与FilterFunction一起使用?
  • 如何确保在任何时候都只有一个轮询器,而又希望不将过滤器的并行度设置为1?
  • 我应该将返回的项目存储在托管的ListState还是原始状态?

1 个答案:

答案 0 :(得分:0)

这是一项建议,应该可以解决您所问的一些问题:

创建一个并行度为1的执行轮询的自定义源。它可以将发现的内容广播到一组进行过滤的BroadcastProcessFunctions中。将允许的项目集保留在MapState中,这将使过滤器查找高效。