【发布时间】:2018-09-26 09:50:08
【问题描述】:
我们遇到了一个问题,即在执行 groupby --> reduce --> toStream 时,当在 reduce 期间发生提交时,部分 reduce 值将被发送到下游。因此,如果要减少 65 个键,并且假设在我们完成一半时发生了一次提交,则输出将是两条消息:一条是部分减少,另一条是所有值都减少了。
下面是我们更详细的案例:
msg --> leftJoin
leftJoin --> flatMap //break msg into parts so we can join again downstream
flatMap --> leftJoin
leftJoin --> groupByKey
groupByKey --> reduce
reduce --> toStream
toStream --> to
目前,我们已经为此提出了一个非常丑陋的解决方案,它与在 flatMap 阶段创建的每条消息中添加索引和 out 值有关...我们过滤掉 reduce 发出的任何消息其中索引!= 出。我的感觉是我们没有在这里做某事或以错误的方式看待它。请告知正确的做法。
谢谢。
【问题讨论】:
标签: apache-kafka apache-kafka-streams