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
答案 0 :(得分:1)
您必须区分以下两种情况:(1)Kafka Streams创建主题,或者(2)您在代理上设置了auto.create.topics.enable=true
。
文档涵盖了第一种情况,即Kafka Streams不会向经纪人发出CreateTopic
请求。因此,该文档是正确的。
但是,如果您在代理上设置了auto.create.topics.enable=true
,则如果您尝试从该代理读取或写入该主题,或者即使您仅请求元数据(例如,分区)。我认为您遇到了这种情况。
顺便说一句:尽管如此,不建议在代理上启用自动主题创建,因为这将创建主题,很可能会产生不必要的分区数量,并且如果以后再更改分区数量,则会对市长产生语义影响。