KStream是否在kafka 2.2中自动创建主题?

问题描述 投票:1回答:1

KStream / TopicNameExtractor javadocs指示当使用to(TopicNameExctractor extractor)时,主题不会自动创建,而必须已经存在。但是,我在2.2.0看到了其他情况。这些文档是不是最新的?这可以依赖于> = 2.2.0吗?

提到的javadoc在这里:https://kafka.apache.org/22/javadoc/org/apache/kafka/streams/processor/TopicNameExtractor.html

我在这里检查了发行说明,没有看到任何相关变化的注释:https://www.apache.org/dist/kafka/2.2.0/RELEASE_NOTES.html

apache-kafka-streams
1个回答
1
投票

您必须区分两种情况:(1)Kafka Streams创建主题,或者(2)您在经纪人身上设置了auto.create.topics.enable=true

文档涵盖了第一个案例,即Kafka Streams不会向经纪人发出CreateTopic请求。因此,文档是正确的。

但是,如果您在代理上设置了auto.create.topics.enable=true,那么如果您尝试从/向其读取或写入,或者即使您仅请求有关它的元数据(如分区数),代理也将创建一个不存在的主题。我假设你遇到了这种情况。

顺便说一下:不建议在代理上启用自动主题创建,因为这会创建很可能会产生不需要数量的分区的主题,如果稍后更改分区数,则会产生市长语义影响。

© www.soinside.com 2019 - 2024. All rights reserved.