更新源主题分区计数时如何更新内部更改日志主题分区?

时间:2018-04-18 00:25:36

标签: apache-kafka kafka-consumer-api kafka-producer-api apache-kafka-streams

我有一个应用程序,其中我使用Kstream-Kstream连接和Ktream-Ktable连接。 我已将输入源主题分区计数从4更新为16,并且应用程序因以下错误而停止。

Could not create internal topics: Existing internal topic application-test-processor-KSTREAM-JOINTHIS-0000000009-store-changelog has invalid partitions. Expected: 16 Actual: 4. Use 'kafka.tools.StreamsResetter' tool to clean up invalid topics before processing. Retry #3

如何在更新源主题分区计数时更新内部更改日志主题分区计数?

注意:我们使用的是kafka版本:0.10.2.1

我查看了此链接中的应用程序重置器工具:https://docs.confluent.io/current/streams/developer-guide/app-reset-tool.html 但它没有说明如何更新changelog分区。

提前致谢。

1 个答案:

答案 0 :(得分:2)

实际上建议使用重置工具。

根据输入分区的数量对应用程序的状态进行分片。这最初是4.因此,将其更改为16打破了应用程序。如果您要手动将更改分区添加到更改日志主题(可能的原因并解决异常,但并未真正解决问题),则不会重新分发状态,因此会损坏。

如果使用重置工具,则删除所有状态,并让您的应用程序从头开始重新处理所有输入数据。这允许Kafka Streams正确地重建状态(现在有16个分片)。

相关问题