如何解决在spring-mvc中创建过程中如何配置kafka主题保留策略?
Spring
Kafka允许您通过@Bean
在应用程序上下文中声明s来创建新主题。这将需要KafkaAdmin
在应用程序上下文中具有类型的Bean,如果使用Spring
Boot,则会自动创建该类型的Bean 。您可以如下定义主题:
@Bean
public NewTopic myTopic() {
return TopicBuilder.name("my-topic")
.partitions(4)
.replicas(3)
.config(TopicConfig.RETENTION_MS_CONfig, "1680000")
.build();
}
如果您不使用Spring Boot,则还必须定义KafkaAdmin
bean:
@Bean
public KafkaAdmin admin() {
Map<String, Object> configs = new HashMap<>();
configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONfig,"localhost:9092");
return new KafkaAdmin(configs);
}
如果您要编辑现有主题的配置,则必须使用AdminClient
,这是retention.ms
在主题级别更改的代码段:
Map<String, Object> config = new HashMap<>();
config.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONfig,"localhost:9092");
AdminClient client = AdminClient.create(config);
ConfigResource resource = new ConfigResource(ConfigResource.Type.TOPIC, "new-topic");
// Update the retention.ms value
ConfigEntry retentionEntry = new ConfigEntry(TopicConfig.RETENTION_MS_CONfig, "1680000");
Map<ConfigResource, Config> updateConfig = new HashMap<ConfigResource, Config>();
updateConfig.put(resource, new Config(Collections.singleton(retentionEntry)));
AlterConfigsResult alterConfigsResult = client.alterConfigs(updateConfig);
alterConfigsResult.all();
解决方法
我需要在创建过程中配置特定主题的保留策略。我试图寻找解决方案,我只能找到如下所示的命令级别alter命令
./bin/kafka-topics.sh –zookeeper本地主机:2181-更改–topic我的主题–config保留.ms =
1680000
有人可以让我知道一种在创建过程中进行配置的方法,例如spring-mvc中的xml或属性文件配置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。