【问题标题】:Hazelcast Jet multiple outbound edgesHazelcast Jet 多个出站边缘
【发布时间】:2018-08-02 12:37:22
【问题描述】:

我需要将聚合结果填充到 3 个单独的接收器 - 更新逻辑略有不同的映射。我试图将管道对象转换为 DAG 并将另一条边添加到倒数第二个顶点,但它引发了一个异常,即不允许多个出站边。有没有办法创建具有多个出站边缘的 DAG?

【问题讨论】:

    标签: hazelcast-jet


    【解决方案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() 构造将它们分配给不同的序数。但是,如果您已经开始使用管道,则没有必要这样做。

    【讨论】:

    • 感谢代码。我不知何故在管道 API 中找到了toDag() 方法,并使用它添加了更多顶点。
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多