gpt4 book ai didi

java - 使用spring创建多个kafka主题

转载 作者:行者123 更新时间:2023-12-02 03:52:28 34 4
gpt4 key购买 nike

我正在创建一个 spring-boot 应用程序,它将创建多个主题。我正在从 .csv 文件中获取主题名称和配置列表。我正在尝试这段代码,但它只能创建一个主题,但不利于使用它创建多个主题。有没有办法使用spring创建多个主题?

@Bean
public KafkaAdmin admin(){
Map<String, Object> configs = new HashMap<>();
configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092");
return new KafkaAdmin(configs);
}
@Bean
public NewTopic topic1() {
NewTopic topic = new NewTopic(String.format("topic%d",1), 10, (short) 1);
Map<String, String> extraTopicConfig = new HashMap<String, String>();
extraTopicConfig.put(TopicConfig.CLEANUP_POLICY_CONFIG, "compact");
extraTopicConfig.put(TopicConfig.MIN_IN_SYNC_REPLICAS_CONFIG, "1");
topic.configs(extraTopicConfig);
return topic;

}

最佳答案

我发现这个老问题正在寻找答案。我是这样解决的:

@Configuration
public class TopicCreation {
final String[] topicNames = new String[] {"topic1", "topic2"};
final SingletonBeanRegistry beanRegistry;

public TopicCreation(GenericApplicationContext context) {
this.beanRegistry = context.getBeanFactory();
}

@PostConstruct
public void createTopics() {
for (String topic : topicNames) {
NewTopic newTopic = TopicBuilder.name(topic)
.replicas(1)
.partitions(1)
.build();
beanRegistry.registerSingleton("topic-" + topic, newTopic);
}
}
}

关于java - 使用spring创建多个kafka主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56770412/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com