更新密钥后加入 Kafka - 缩放

Kafka join after rekey - Scaling

我有多余的应用程序需要消耗两个流(假设主题 foobar)并对 bar.valuefoo.key 匹配 bar.value.matching_key.我希望该操作只执行一次。

我想要 confirmations/insights 这些:

谢谢!

如果您使用 Streams API,如果您在代码中设置连接键,库将自动创建重新键入主题。例如:

KStream fooStream = builder.stream("foo");
KTable barTable = builder.table("bar");
fooStream.selectKey(/*set "bar" key*/).join(barTable,...);

这将被执行为:

fooStream.selectKey(/*set "bar" key*/).to("rekey-foo");
KStream rekeyFooStream = builder.stream("rekey-foo");
rekeyFooStream.join(barTable,...);

对于分区分配:Kafka Streams 不使用来自消费者的默认分区分配器,而是使用确保正确分配主题分区的自定义实现。