我真的很喜欢 jazelcast jet 如何与 java util 流一起工作,但是当我运行这些流时,我很困惑这是如何以分布式方式运行的。
public class IstreamHazelcastDemo {
public static void main( String[] args ) {
JetInstance jet = Jet.newJetInstance();
Jet.newJetInstance();
IListJet<String> list = jet.getList("list");
for(int i = 0; i < 50; i++) {
list.add("test" + i);
}
DistributedStream.fromList(list)
.map(word -> {
System.out.println("word: " + word);
return word.toUpperCase();
})
.collect(DistributedCollectors.toIList("sink"))
.forEach(System.out::println);
}
}
这是一个简单的示例,我首先创建一个 jet 实例,然后运行另一个主程序,然后运行此代码,使其形成一个由 2 个节点组成的集群。因此,当我运行上面的代码时,我希望看到 map 函数中的 print 语句将在两个节点中打印,因为我认为它是分布式的并且会发送到多个节点。但它总是只在一个节点上执行整个流程。我试图思考这是如何分发的,或者是我缺乏对 hazelcast Jet 的了解。
谢谢