这个问题是关于Hazelcast Jet 0.5.1中的Pipeline API
我试图创建的管道有两个无限的来源:一个是自动收报机(每分钟发送一个事件的自定义源),另一个是Kafka主题。
看起来像是:
Pipeline pipeline = Pipeline.create();
ComputeStage<Object> tickerSource = pipeline.drawFrom(Sources.fromProcessor("ticker", TickerSource.getSupplier()));
ComputeStage<Object> kafkaSource = pipeline.drawFrom(KafkaSources.kafka(sourceProperties, KAFKA_TOPIC));
当其中任何一个源发出事件时,我希望该事件经历相同的步骤并流向相同的接收器。如果我们将我的问题翻译成SQL术语,我想要一个&#34; UNION&#34;看起来像这样的东西:
我发现的关于将两个节点合二为一的所有示例和文档都等同于SQL&#34; JOIN&#34;操作,而不是&#34; UNION&#34;。
我发现绕过我的问题的唯一方法是做这样的事情,但我觉得这是框架应该已经拥有的东西,尽管我似乎无法找到它。
Arrays.asList(tickerSource, kafkaSource).forEach(source ->
{
ComputeStage<Object> result = source.map(MyCustomProcessor::process);
result.drainTo(Sinks.fromProcessor("first-sink", MyFirstSink.getSupplier());
result.drainTo(Sinks.fromProcessor("second-sink", MySecondSink.getSupplier());
});
结果如下: