ABh*_*nav 2 java apache-kafka kafka-consumer-api spring-kafka
当主题不存在时,我不想从我的消费者应用程序自动创建主题。
我知道这是一个 Kafka 服务器级别的配置,用于禁用自动主题创建 ( auto.create.topics.enable = false),但我无法在我的基础设施中进行此更改。
因此,我正在寻找一种方法来禁用我的消费者应用程序中的自动主题创建(使用 Spring Kafka)。
我尝试设置
spring:
kafka:
consumer:
properties:
allow.auto.create.topics: false
Run Code Online (Sandbox Code Playgroud)
但它不起作用!
似乎 Kafka 添加了此支持: https://cwiki.apache.org/confluence/display/KAFKA/KIP-361%3A+Add+Consumer+Configuration+to+Disable+Auto+Topic+Creation
有人可以帮忙吗?
以下配置application.yml非常适合基于 Spring for Apache Kafka 的消费者:
spring:
kafka:
consumer:
properties:
allow.auto.create.topics: false
Run Code Online (Sandbox Code Playgroud)
这是一个简单的 Spring Kafka Consumer 的参考项目。
然而,就我而言,我还使用了Spring Kafka 以注释形式提供的非阻塞重试@RetryableTopic。
在这种情况下,为了关闭 Consumer 的自动主题创建,以及上述属性更改,我们还需要在注释中设置一个名为autoCreateTopicsto的属性,如下所示:"false"@RetryableTopic
@RetryableTopic(
attempts = "4",
backoff = @Backoff(delay = 1000),
fixedDelayTopicStrategy = FixedDelayStrategy.SINGLE_TOPIC,
autoCreateTopics = "false"
)
Run Code Online (Sandbox Code Playgroud)
它的默认值为"true".
这是一个带有非阻塞重试的 Spring Kafka Consumer 的参考项目。
非常感谢佐洛夫为我指明了正确的方向。
| 归档时间: |
|
| 查看次数: |
6263 次 |
| 最近记录: |