使用 Spring Boot 创建 Kafka 主题
Kafka Topic Creation using Spring Boot
我正在尝试使用 Spring Boot 在 Kafka 中创建一个新主题。
在 Google 中搜索后,我得到了以下答案
@Configuration
public class KafkaTopicConfiguration {
@Bean
public NewTopic createTopic(Topic topic) {
return TopicBuilder.name(topic.getTopicName())
.partitions(topic.getPartitions())
.replicas(topic.getReplicas())
.build();
}
}
但我无法使用 Spring Boot REST POST Call.
实现以下功能
@PostMapping("/api/v1/kafkatopic/")
public NewTopic createTopic(@RequestBody Topic topic)
{
return kt.createTopic(topic);
}
//kt being object of the Configuration Class
但是,如果主题详细信息已通过如下代码(硬编码)传递,则相同的代码也有效。
@Bean
public NewTopic createTopic() {
return TopicBuilder.name("test-topic")
.partitions(6)
.replicas(3)
.build();
}
有人可以帮忙吗
提前致谢
NewTopic
bean 仅在应用程序初始化期间创建。在运行时调用 bean 工厂方法什么都不做。
要动态创建主题,您需要使用AdminClient
。 Spring 引导自动配置一个 KafkaAdmin
bean。
您可以使用其属性创建 AdminClient
。
然后使用客户端创建您的主题。
try (AdminClient client = AdminClient.create(kafkaAdmin.getConfigurationProperties()) {
...
}
我正在尝试使用 Spring Boot 在 Kafka 中创建一个新主题。
在 Google 中搜索后,我得到了以下答案
@Configuration
public class KafkaTopicConfiguration {
@Bean
public NewTopic createTopic(Topic topic) {
return TopicBuilder.name(topic.getTopicName())
.partitions(topic.getPartitions())
.replicas(topic.getReplicas())
.build();
}
}
但我无法使用 Spring Boot REST POST Call.
实现以下功能 @PostMapping("/api/v1/kafkatopic/")
public NewTopic createTopic(@RequestBody Topic topic)
{
return kt.createTopic(topic);
}
//kt being object of the Configuration Class
但是,如果主题详细信息已通过如下代码(硬编码)传递,则相同的代码也有效。
@Bean
public NewTopic createTopic() {
return TopicBuilder.name("test-topic")
.partitions(6)
.replicas(3)
.build();
}
有人可以帮忙吗
提前致谢
NewTopic
bean 仅在应用程序初始化期间创建。在运行时调用 bean 工厂方法什么都不做。
要动态创建主题,您需要使用AdminClient
。 Spring 引导自动配置一个 KafkaAdmin
bean。
您可以使用其属性创建 AdminClient
。
然后使用客户端创建您的主题。
try (AdminClient client = AdminClient.create(kafkaAdmin.getConfigurationProperties()) {
...
}