Hazelcast Jet:如何防止“事件丢失”?

时间:2019-09-18 07:49:53

标签: hazelcast hazelcast-jet

我收到“事件丢失,迟到5051毫秒。”

我应该如何构建处理所有事件的管道,而不管它们迟到了。

我尝试了几种方法。基本上,我尝试过的是

  1. 没有窗口,我没有收到较晚的事件,但这不适用于我,因为并行执行,并且接收器中的值被覆盖而不是合并。
  2. 因此,我使用开窗解决了我的首要问题,但导致了较晚的事件。
  3. 接下来,我尝试使用没有时间戳的窗口,这引发了必须定义时间戳的异常。

基本上,这里有2个问题:1)如何将新事件合并到接收器中的现有事件2)不删除事件或覆盖事件。

代码:

WindowDefinition customWindow = WindowDefinition.sliding(60000, 30000);
customWindow.setEarlyResultsPeriod(1000);

StreamStage<Map.Entry<...>> updatedState = p
                .drawFrom(<source>)
                .withIngestionTimestamps()
                .groupingKey(...)
                .window(customWindow)
                .aggregate(AggregateOperations.toCollection(ArrayList::new))
                .mapUsingIMap(...)
                .sink(...)

0 个答案:

没有答案