gpt4 book ai didi

java - 使用 spring 管理 Kafka 主题

转载 作者:搜寻专家 更新时间:2023-11-01 02:19:39 25 4
gpt4 key购买 nike

我们计划在我们的应用程序中使用 Kafka 进行排队。我在 RabbitMQ 和 Spring 方面有一些经验。

使用 RabbitMQ 和 Spring,我们过去常常在启动 spring 服务时管理队列创建。

对于 Kafka,我不确定创建主题的最佳方式是什么?有没有办法用 Spring 管理主题。

或者,我们是否应该编写一个单独的脚本来帮助创建主题?维护一个单独的脚本来创建主题对我来说似乎有点奇怪。

如有任何建议,我们将不胜感激。

最佳答案

在 spring 中,可以在应用程序启动期间使用 bean 创建主题:

@Bean
public KafkaAdmin admin() {
Map<String, Object> configs = new HashMap<>();
configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG,
StringUtils.arrayToCommaDelimitedString(kafkaEmbedded().getBrokerAddresses()));
return new KafkaAdmin(configs);
}

@Bean
public NewTopic topic1() {
return new NewTopic("foo", 10, (short) 2);
}

或者,您可以通过 Autowiring AdminClient 来编写您自己的创建主题,例如从输入文件中读取列表或指定分区号等高级属性:

@Autowired
private KafkaAdmin admin;
//...your implementation

另请注意,由于 Kafka 1.1.0 auto.create.topics.enable 默认启用 (see Broker configs)。

有关更多信息,请参阅 spring-kafka docs

关于java - 使用 spring 管理 Kafka 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50909458/

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