Apache kafka KafkaStream createTopic不尊重Kafka服务器';s auto.create.topics.enable设置

Apache kafka KafkaStream createTopic不尊重Kafka服务器';s auto.create.topics.enable设置,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,我们有一个生产卡夫卡集群,最近受到了一系列新主题的污染。Kafka群集具有以下设置: auto.create.topics.enable=false delete.topic.enable=false 经过调查,我发现这些主题是由使用KafkaStream的createTopic方法的客户团队创建的: org.apache.kafka.streams.integration.utils.EmbeddedKafkaCluster#createTopic(java.lang.String,int,

我们有一个生产卡夫卡集群,最近受到了一系列新主题的污染。Kafka群集具有以下设置:

auto.create.topics.enable=false
delete.topic.enable=false
经过调查,我发现这些主题是由使用
KafkaStream
的createTopic方法的客户团队创建的:
org.apache.kafka.streams.integration.utils.EmbeddedKafkaCluster#createTopic(java.lang.String,int,int)

这是否意味着KafkaStream的主题创建没有经过服务器端代理设置
auto.create.topics.enable
?这是否意味着
createTopic*
方法不算作自动主题创建?如果是这样,我们如何阻止客户端团队在Kafka集群上以编程方式创建主题


编辑:kafka群集正在运行10.1.1,客户端正在运行kafka和kafka流的1.0.0。配置
auto.create.topics.enable
仅在客户端尝试从/写入不存在的主题(或查询不存在的主题的元数据)时适用

Kafka Streams确实使用
CreateTopic
请求显式创建主题,因此
auto.create.topics.enable
不适用

您可以为集群设置一些ACL,以控制谁可以创建主题:

注意:如果您不允许使用卡夫卡流创建新主题的团队,则会使他们很难使用卡夫卡流。如果没有这些主题,Kafka Streams将无法运行,您需要手动创建这些主题(使用正确的配置),以避免中断Kafka Streams应用程序