【问题标题】:Strimzi Apache Kafka operator doesn't respect auto.create.topics.enableStrimzi Apache Kafka 操作员不尊重 auto.create.topics.enable
【发布时间】:2022-02-16 01:53:53
【问题描述】:

我使用以下设置创建了一个带有 srimzi 运算符(版本 0.28.0)的 kafka 集群:

spec:
  kafka:
    config:
      log.retention.hours: 5
      auto.create.topics.enable: false
      default.replication.factor: 3
      min.insync.replicas: 2

假设不会自动创建主题,我添加了两个主题定义:

  1. _schemas 用于架构注册表
  2. __consumer_offsets 消费者群体

但是在启动集群后,我也看到了两个自动创建的主题:

  1. __strimzi_store_topicstrimzi-store-topic---effb8e3e057afce1ecf67c3f5d8e4e3ff177fc55 Kubernetes 资源表示。
  2. strimzi-topic-operator-kstreams-topic-store-changelogstrimzi-topic-operator-kstreams-topic-store-changelog---b75e702040b99be8a9263134de3507fc0cc4017b Kubernetes 资源表示。

附加到资源名称的哈希表明它们是在外部创建的(不使用kind: KafkaTopic CRD)

【问题讨论】:

    标签: kubernetes apache-kafka strimzi


    【解决方案1】:

    我在互联网上搜索了auto.create.topics.enable,第一个解释此配置作用的结果是here。它说:

    ... 有一个名为 auto.create.topics.enable 的属性,允许在生产者尝试向其中写入数据时自动创建主题。这意味着如果生产者尝试将记录写入名为客户的主题并且该主题尚不存在 - 它将自动创建以允许写入。而不是向客户端返回错误。

    您看到的由 Strimzi 创建的主题并不是作为生产者尝试写入它们的自动结果创建的,而是因为 Strimzi 需要它们用于其自身的内部状态管理目的,所以它明确地创建了它们。

    您应该看到的是,如果您尝试生成一个名为 foo 的主题,它将失败。

    如果您改为设置 auto.create.topics.enable: true 并尝试使用生产者进行相同的操作,它不会失败,并且 foo 将由 Kafka 自动创建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-31
      • 2020-07-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 2019-10-04
      • 2021-10-27
      • 2021-09-28
      相关资源
      最近更新 更多