在创建期间配置所有主题的保留策略
正在尝试配置租用。ms使用spring,因为我得到一个错误:
原因:java.util.concurrent。ExecutionException:org.apache.kafka.common.errors。PolicyViolationException:保留无效。ms指定。允许的范围是[3600000..2592000000],根据我读取的值,新值是-1(无穷大),因此超出该范围
下面介绍如何在spring mvc中创建期间配置kafka主题保留策略,我添加了以下代码,但似乎没有效果。关于如何解决这个问题,有什么想法/提示吗?
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符号<主题保留。ms是需要在streams配置中设置的值。86400000是一个随机值,仅在[3600000..2592000000]范围内使用
问题内容: 我需要在创建过程中配置特定主题的保留策略。我试图寻找解决方案,我只能找到如下所示的命令级别alter命令 ./bin/kafka-topics.sh –zookeeper本地主机:2181-更改–topic我的主题–config保留.ms = 1680000 有人可以让我知道一种在创建过程中进行配置的方法,例如spring-mvc中的xml或属性文件配置。 问题答案: Spring K
我正在实验Kafka流,我有以下设置: null 有什么方法可以让我的KTable从我的主题中“继承”保留策略吗?这样当记录从主主题过期时,它们在KTable中就不再可用了? 我担心将所有记录转储到KTable中,并使StateStore无限增长。 我能想到的一个解决方案是转换成一个窗口流,其跳跃窗口等于记录的TimeToLive,但我想知道是否有更好的解决方案,以更原生的方式。 多谢了。
假设我有一个多代理(运行在同一主机上)的Kafka设置,其中有3个代理和50个主题,每个主题配置为有7个分区和3个复制因子。 我有50GB的内存要用于kafka,并确保kafka日志永远不会超过这个内存数量,因此我想配置我的保留策略以防止这种情况。 我已设置删除清理策略: 我应该如何配置上述参数,以便每7天删除一次数据,并确保如果需要,可以在较短的窗口中删除数据,这样我就不会耗尽内存?
我想为我们拥有的一些用例实现数据回放,为此,我需要使用Kafka保留策略(我使用的是连接,我需要窗口时间才能准确)。附言:我正在使用Kafka版本0.10.1.1 我将数据发送到主题中,如下所示: 我创建的主题如下: Kafka主题--创建--zookeeper localhost:2181--复制因子1--分区1--主题myTopic Kafka主题--zookeeper localhost--
我们将设置为 1 小时,如下所示(以前设置为 72H) 使用以下Kafka命令行工具,我们将kafka 设置为< code>1H。我们的目标是清除topic - 中比1H旧的数据,因此我们使用了以下命令: 此外 两个命令都运行无误。 但问题是关于Kafka的数据,它比1H更老,仍然存在! 实际上,没有从主题分区中删除任何数据。我们有HDP Kafka集群版本1.0x和ambari 我们不明白为什么