gpt4 book ai didi

apache-kafka - 如何使用 testcontainers 高效地创建 Kafka 主题?

转载 作者:行者123 更新时间:2023-12-03 23:50:10 29 4
gpt4 key购买 nike

我正在使用 testcontainers.org 和 KafkaContainer .

目前,我使用 kafka-topics在启动容器后创建主题:

kafkaContainer.execInContainer("/bin/sh", "-c", "/usr/bin/kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topicName");

由于每个主题大约需要 3-5 秒,我想知道是否有更有效的方法来创建多个主题。
或者是否有一个简单的开关来按需自动创建主题?

最佳答案

作为引用,使用 AdminClient 是最有效的。

下面是一个例子:

  private static void createTopics(String... topics) {
var newTopics =
Arrays.stream(topics)
.map(topic -> new NewTopic(topic, 1, (short) 1))
.collect(Collectors.toList());
try (var admin = AdminClient.create(Map.of(BOOTSTRAP_SERVERS_CONFIG, getKafkaBrokers()))) {
admin.createTopics(newTopics);
}
}

private static String getKafkaBrokers() {
Integer mappedPort = kafkaContainer.getFirstMappedPort();
return String.format("%s:%d", "localhost", mappedPort);
}

关于apache-kafka - 如何使用 testcontainers 高效地创建 Kafka 主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59164611/

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