Spring Cloud Stream Kafka 复制因子和运行时保留问题

问题描述

我有一个使用 Kafka 的 Spring Boot 项目。我使用 Spring Cloud Stream Kafka 自动配置对其进行了配置。我想自动创建具有 3 个副本和 1 天保留期的主题。为此,我将复制因子和保留时间.ms 添加到我的 application.yml 中,如下所示:

spring:
  cloud:
    stream:
      kafka:
        binder:
          replicationFactor: 3
        default:
          consumer:
            topic:
              properties:
                retention.ms: 86400000
          producer:
            topic:
              properties:
                retention.ms: 86400000

实际上这些对我来说很好用,主题创建为 3 个副本,保留 1 天,但是当我在应用程序运行时删除一个主题时,这个主题自动创建,没有副本和保留。有谁知道这是什么原因?我应该怎么做才能在运行时创建具有 3 个副本和 1 天保留期的主题

解决方法

将代理的 auto.create.topics.enable 属性设置为 false

https://kafka.apache.org/documentation/#brokerconfigs_auto.create.topics.enable