我用strimzi运算符(版本0.28.0(创建了一个kafka集群,设置如下:
spec:
kafka:
config:
log.retention.hours: 5
auto.create.topics.enable: false
default.replication.factor: 3
min.insync.replicas: 2
假设不会自动创建任何主题,我添加了两个主题定义:
架构注册表的_schemas
__consumer_offsets
然而,在启动集群后,我也看到了两个自动创建的主题:
__strimzi_store_topic
,它由strimzi-store-topic---effb8e3e057afce1ecf67c3f5d8e4e3ff177fc55
Kubernetes资源表示- 以CCD_ 6 Kubernetes资源表示的CCD_
附加到资源名称的散列表明它们是在外部创建的(不使用kind: KafkaTopic
CRD(
我在互联网上搜索了auto.create.topics.enable
,第一个结果解释了这个配置的作用。上面写着:
。。。有一个名为auto.create.topics.enable的属性,当生产者试图向其中写入数据时,它允许自动创建主题。这意味着,如果生产者试图向名为customers的主题写入记录,而该主题还不存在,它将自动创建以允许写入。而不是向客户端返回错误。
您看到的由Strimzi创建的主题并不是生产者试图写入它们的自动结果,而是因为Strimzi需要它们用于自己的内部状态管理目的,所以它明确地创建了它们。
你应该看到的是,如果你试图制作一个名为foo
的主题,它会失败。
如果你设置了auto.create.topics.enable: true
,并在制作人那里尝试了同样的事情,它不会失败,foo
将由Kafka自动创建。