Flink 跨作业共享对象

Flink shared object across jobs

我在 Flink 中有一个流作业列表 运行,每个作业都有不同的并行度。

作业处理文档。现在我想为每个作业上次处理的文档制作快照。我可以使用 Redis 来存储文档 ID 和 Kafka 主题。但我不想为每个作业的并行度总​​数打开 Redis 连接(例如 300 个连接用于 30 个作业,每个作业有 10 个并行度)

我的问题是:

  1. 是不是我把redis放在下沉部分而不是RichFlatMapFunction比较好?是否只需要为 30 个作业打开 30 个连接,而不考虑并行度?

  2. 是否有更好的方法来使写入 Redis 的对象在作业之间共享,从而只需要一个连接?

使用处理文档 ID/time 创建一个副输出,并将其 运行 到并行度为 1 的运算符中。将此数据存储在任何有意义的地方(Redis 等)