[spring-kafka]:创建kafka主题后编辑log.retention.bytes

问题描述 投票:0回答:1

我们在 Java 应用程序中使用 Debezium + spring-boot + spring-kafka。 Debezium 代码将自动创建一些 kafka 主题。是否可以使用 spring-kafka 修改这些主题的属性?

我们可以在 application.properties 中设置一些属性或修改 debezium 配置来实现此目的吗?

谢谢!

apache-kafka spring-kafka apache-kafka-connect debezium
1个回答
0
投票

这取决于 Debezium 是否设置任何属性。如果它没有设置,则当它尝试查看是否存在不匹配时,

KafkaAdmin
中存在错误(我已经打开了一个问题来修复该问题https://github.com/spring-projects/spring-kafka/issues /2832)。

如果它确实设置了任何配置,并且您想更改其中一些配置,那么这应该可以...

spring.kafka.admin.modify-topic-configs=true
@Bean
ApplicationRunner runner(KafkaAdmin admin) {
    return args -> {
        admin.createOrModifyTopics(TopicBuilder.name("topic1")
                .config("retention.bytes", "100000")
                .partitions(1)
                .replicas(1)
                .build());
    };
}

如果没有现有属性,并且您迫不及待地等待修复,您可以自己使用

AdminClient
(只需看看
KafkaAdmin
checkTopicsForConfigMismatches()
中是如何实现的。

© www.soinside.com 2019 - 2024. All rights reserved.