0

我正在使用英雄。我的拓扑结构如下:

Spout1 -> Bolt1 -> Bolt2

Spout2 ---------> Bolt2

因此,Bolt2 需要来自 Spout2 和 Bolt1 的信息才能发出结果,但是来自 Spout2 的信息比来自 Bolt1 的信息来得快,并且 Bolt2 必须等到如果同时具有 Spout2 和 Bolt1 信息。如何使用 Heron API 同步信息流,以便 Bolt2 仅在所有可用信息之后才发出结果?

4

2 回答 2

0

通常,流式传输中不能保证顺序/同步。我觉得 spout1 和 spout2 本身很难 100% 同步。

我认为您可能会考虑一个选项:将 bolt1 连接到 spout2 并直接从 spout2 发出元组,将 bolt2 与 spout2 断开连接。因此,bolt1 成为排序的真实来源。

开窗可能是另一种选择,但它需要更多的考虑和工作。

于 2018-11-16T18:20:38.650 回答
0

Heron 不会自动同步来自不同组件的元组。因此,您需要缓冲来自 Spout2 的元组并等待来自 Bolt1 的相应元组到达,然后进行计算。

于 2018-11-16T21:37:46.897 回答