如何在kafka流中聚合多个分区

时间:2018-08-14 11:55:28

标签: java apache-kafka apache-kafka-streams spring-kafka

让我们假设我有一个名为events的主题,其中包含3个用于发送字符串的分区。每个分区的消息如下所示:

["userId:test1", "userId:test2", "userId:test3", "userId:test4"] 

在分区1上。

["userId:test2", "userId:test4", "userId:test6", "userId:test8"] 

在分区2上。

["userId:test3", "userId:test6", "userId:test9", "userId:test12"] 

在分区3上。

我想查看以下聚合的结果。

test1 1
test2 2
test3 2

(顺序无关紧要。)

这可能吗?如果可以的话,希望您能给我一些建议。否则,我希望您再给我第二种选择,以便我可以以类似的方式工作。

谢谢。

2 个答案:

答案 0 :(得分:3)

是的,您可以这样做。

我假设"userId:test1"是一个键值对,即key="userId"value="test1"等。在这种情况下,您可以将值设置为新键并应用{{1 }}。

count()

查看文档以获取更多详细信息:https://kafka.apache.org/20/documentation/streams/developer-guide/

答案 1 :(得分:-2)

您可能想研究Apache-Flume https://flume.apache.org/FlumeUserGuide.html