当主题不存在时,我不想自动从我的消费者应用程序中创建主题。
我知道禁用自动主题创建(auto.create.topics.enable = false
)是卡夫卡服务器级别的配置,但我不能在我的基础设施中进行这种更改。
因此,我正在寻找在我的消费者应用程序(使用Spring )中禁用自动主题创建的方法。
我试着设置
spring:
kafka:
consumer:
properties:
allow.auto.create.topics: false
但它不起作用!
似乎卡夫卡添加了这样的支持:https://cwiki.apache.org/confluence/display/KAFKA/KIP-361%3A+Add+Consumer+Configuration+to+Disable+Auto+Topic+Creation
有人能帮忙吗?
发布于 2022-07-26 18:53:20
基于Spring,application.yml
中的以下配置非常适合消费者:
spring:
kafka:
consumer:
properties:
allow.auto.create.topics: false
这里是一个简单的Spring消费者参考项目。
然而,在我的例子中,我还使用了Spring提供的非阻塞重试(以@RetryableTopic
注释的形式)。
在本例中,为了从使用者关闭自动主题创建,以及上面提到的属性更改,我们还需要在autoCreateTopics
注释中将名为"false"
的属性设置为@RetryableTopic
注释,如下所示:
@RetryableTopic(
attempts = "4",
backoff = @Backoff(delay = 1000),
fixedDelayTopicStrategy = FixedDelayStrategy.SINGLE_TOPIC,
autoCreateTopics = "false"
)
它的默认值是"true"
。
这里是Spring消费者非阻塞重试的参考项目.
非常感谢佐洛夫为我指明了正确的方向。
https://stackoverflow.com/questions/73110922
复制相似问题