我有一个从 kafka 获取元组的拓扑。
拓扑大致是这样的。
topology.newStream("kafkaSpout", spout)
.shuffle()
.each(new Fields("str"), new Filter())
.parallelismHint(5)
.each(new Fields("str"), new Function(),
new Fields("some fields"))
.parallelismHint(5)
.partitionBy(new Fields("some field"))
.partitionAggregate(new Fields("some fields"),
new SomeAggregator(),
new Fields(""some fields""))
.parallelismHint(5)
.partitionPersist(new StateFactory(),
new Fields("some filed"),
new StateUpdater());
从文档中我了解到,在聚合器中,为每个元组调用聚合方法,在处理所有元组时调用完整方法。
我已将调试系统输出放入 init 和聚合方法中。当我启动拓扑时,我可以看到来自 init 和聚合方法的连续系统输出。这种行为是预期的吗?(注意Kafka中没有数据)