【问题标题】:Does output topic always have to be manually created for kafka stream?是否总是必须为 kafka 流手动创建输出主题?
【发布时间】:2021-10-16 06:30:42
【问题描述】:
KStream<String, String> kstream = builder.stream("input-topic");
kstream.to("output-topic");
“输入主题”已创建。
我没有创建“输出主题”,似乎“Kstream”为我创建了一个以及其他内部主题。另外,在“to”函数的javadoc中看到了这一点指定的主题应该在使用之前手动创建(即在Kafka Streams应用程序启动之前)
所以我的问题是我们总是必须手动创建“输出主题”吗?
【问题讨论】:
标签:
apache-kafka
apache-kafka-streams
【解决方案1】:
默认情况下,kafka 代理配置auto.create.topics.enable 设置为 true,允许客户端尝试从未知主题生成/消费以创建它并开始其进程。在 Kafka 中,最好在对主题进行任何操作之前明确创建主题。这是为了确保您不会无意中创建主题溢出,以及确保主题设置为正确的分区/复制因子计数。因此,为什么文档说明 - 应该在使用之前手动创建`。
答案是否定的,我们不必总是手动创建主题,尤其是在本地环境中工作/玩耍时。
注意:如果主题是动态创建的(即在消费者/生产者启动时),则分区/复制因子将设置为您在 server.properties 文件中获得的内容.