Flink 流顺序

2024-04-02

Flink 能保证流的执行顺序吗?

我有两个 Kafka 主题(每个主题都有一个分区),流 1 和流 2,并使用keyBy,流由一个处理coprocess功能。

在我的测试过程中,我可以看到两个流的内容并不总是按顺序执行。

我可以将并行度设置为 1 来解决此问题,但想了解我所看到的是否是预期的?

source1.keyBy(e -> e.f0);
source2.keyBy(e -> {
    return new JSONObject(e.f1).getString("someOtherKey");
});

source1.connect(source2)
       .process(new KeyedCoProcessFunction())
       .uid("uid")
       .name("name");

事件将保持其相对顺序如果它们在执行图中采用相同的路径。否则,一切皆废。

这是一个可能发生的情况的示例keyBy。最初事件的顺序为 1, 2, A

but a keyBy将 A 发送到与 1 和 2 不同的路径:

之后我们可能会看到 A, 1, 2(如此处所示),或 1, A, 2,或 1, 2, A。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flink 流顺序 的相关文章

随机推荐