在 spring-mvc 中创建期间配置 kafka 主题保留策略?
Configure kafka topic retention policy during creation in spring-mvc?
在创建期间配置所有主题的保留策略
尝试使用 spring 配置 rentention.ms,因为我收到以下错误:
原因:java.util.concurrent.ExecutionException:org.apache.kafka.common.errors.PolicyViolationException:指定的 retention.ms 无效。允许的范围是 [3600000..2592000000]
从我读到的新值是 -1(无穷大)所以超出了那个范围
按照里面的内容
,我添加了下面的代码,但似乎没有效果。
ideas/hints 关于如何解决这个问题?
ApplicationConfigurationTest.java
@test
public void kafkaAdmin () {
KafkaAdmin admin = configuration.admin();
assertThat(admin, instanceOf(KafkaAdmin.class));
}
ApplicationConfiguration.java
@Bean
public KafkaAdmin admin() {
Map<String, Object> configs = new HashMap<>();
configs.put(TopicConfig.RETENTION_MS_CONFIG, "1680000");
return new KafkaAdmin(configs);
}
通过设置值找到解决方案
spring.kafka.streams.topic.retention.ms: 86400000
在 application.yml.
我们的应用程序使用 spring mvc,因此使用 spring 表示法。
topic.retention.ms是streams config中需要设置的值
86400000 是一个随机值,因为它在 [3600000..2592000000]
范围内
在创建期间配置所有主题的保留策略
尝试使用 spring 配置 rentention.ms,因为我收到以下错误:
原因:java.util.concurrent.ExecutionException:org.apache.kafka.common.errors.PolicyViolationException:指定的 retention.ms 无效。允许的范围是 [3600000..2592000000] 从我读到的新值是 -1(无穷大)所以超出了那个范围
按照里面的内容
ApplicationConfigurationTest.java
@test
public void kafkaAdmin () {
KafkaAdmin admin = configuration.admin();
assertThat(admin, instanceOf(KafkaAdmin.class));
}
ApplicationConfiguration.java
@Bean
public KafkaAdmin admin() {
Map<String, Object> configs = new HashMap<>();
configs.put(TopicConfig.RETENTION_MS_CONFIG, "1680000");
return new KafkaAdmin(configs);
}
通过设置值找到解决方案
spring.kafka.streams.topic.retention.ms: 86400000
在 application.yml.
我们的应用程序使用 spring mvc,因此使用 spring 表示法。
topic.retention.ms是streams config中需要设置的值
86400000 是一个随机值,因为它在 [3600000..2592000000]