我正在使用Heropy。我的拓扑结构是另一种方式:
Spout1-> Bolt1-> Bolt2
Spout2 ---------> Bolt2
因此,Bolt2需要来自Spout2和Bolt1的信息才能发出结果,但是来自Spout2的信息要比来自Bolt1的信息快,而Bolt2必须等待直到同时拥有Spout2和Bolt1的信息。如何使用Heron API同步信息流,以便Bolt2仅在所有可用信息后才发出结果?
答案 0 :(得分:0)
通常,流中不保证顺序/同步。我觉得spout1和spout2本身很难100%同步。
我认为您可以考虑以下一种选择:将bolt1钩到spout2并直接从spout2发出元组,将bolt2与spout2断开连接。这样,bolt1便成为排序的真相。
开窗可能是另一种选择,但需要更多注意事项并起作用。
答案 1 :(得分:0)
Heron不会自动同步来自不同组件的元组。因此,您将需要缓冲Spout2中的元组,并等待直到Bolt1中的相应元组到达,然后进行计算。