考虑下面的代码:为什么我没有看到Kafka Streams reduce方法的输出?
KStream<String, Custom> stream =
builder.stream(Serdes.String(), customSerde, "test_in");
stream
.groupByKey(Serdes.String(), customSerde)
.reduce(new CustomReducer(), "reduction_state")
.print(Serdes.String(), customSerde);
我有减速机,成功地打印出时,我想到的减少发生的方法适用于内println
声明。但是,上面显示的最终打印语句不显示任何内容。同样如果我使用to
方法而不是print
,我在目标主题中看不到消息。
reduce语句后需要什么来查看减少的结果?如果一个值被推送到输入,我不期望看到任何东西。如果使用同一个键的第二个值被推送,我期望reducer被应用(它所做的),我也期望减少的结果继续到处理管道中的下一个步骤。如上所述,我在管道的后续步骤中没有看到任何东西,我不明白为什么。
尝试设置'StreamConfig.CACHE_MAX_BYTES_BUFFERING_CONFIG'到值0。 –
@ MatthiasJ.Sax由于!这为我解决了这个问题,请随时发布它作为答案,以便我可以给你奖励点数。如果你可以包含一个关于这个配置细节和其他喜欢它的更多信息的链接,我也会很感激它。 – LaserJesus