禁用Spring Kafka Consumer的自动主题创建



当主题不存在时,我不想从Consumer应用程序自动创建主题。

我知道禁用自动主题创建(auto.create.topics.enable = false(是Kafka服务器级别的配置,但我不能在我的基础结构中进行更改。

因此,我正在寻找一种方法来禁用Consumer应用程序中的自动主题创建(使用Spring Kafka(。

我试着设置

spring:
kafka:
consumer:
properties:
allow.auto.create.topics: false

但它不起作用!

似乎卡夫卡添加了这种支持:https://cwiki.apache.org/confluence/display/KAFKA/KIP-361%3A+添加+消费者+配置+到+禁用+自动+主题+创建

有人能帮忙吗?

application.yml中的以下配置非常适合基于Spring for Apache Kafka:的消费者

spring:
kafka:
consumer:
properties:
allow.auto.create.topics: false

这里是一个简单的Spring Kafka Consumer的参考项目。

然而,在我的案例中,我也使用了Spring Kafka以@RetryableTopic注释的形式提供的非阻塞重试

在这种情况下,为了关闭Consumer的自动主题创建,以及上述属性更改,我们还需要在@RetryableTopic注释中设置一个名为autoCreateTopics"false"的属性,如下所示:

@RetryableTopic(
attempts = "4",
backoff = @Backoff(delay = 1000),
fixedDelayTopicStrategy = FixedDelayStrategy.SINGLE_TOPIC,
autoCreateTopics = "false"
)

默认值为"true"

这里有一个针对Spring Kafka Consumer的无阻塞重试的参考项目。

非常感谢托洛夫为我指明了正确的方向。

最新更新