Hazelcast Jet多个出站边缘

时间:2018-07-25 20:34:18

标签: hazelcast-jet

我需要将聚合结果填充到3个单独的接收器-映射中的更新逻辑略有不同。我试图将流水线对象转换为DAG并在倒数第二个顶点添加另一个边,但是它抛出了一个例外,即不允许多个出站边。有什么方法可以创建具有多个出站边缘的DAG?

1 个答案:

答案 0 :(得分:1)

您应该只需要将要消耗至多个接收器的阶段分配给一个变量,然后使用不同的接收器重复调用drainTo()

示例:

StreamStage<TimestampedEntry<..>> stage = pipeline.drawFrom(..)
                             .map(..)
                             .groupingKey(..)
                             .window(..)
                             .aggregate(counting());

stage.drainTo(Sinks.map("map1));
stage.drainTo(Sinks.map("map2")).

如果要使用DAG API达到相同的目的,则需要使用Edge.from().to()构造将它们分配给不同的标准。但是,如果您已经开始使用管道,则没有必要。