我正在将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秒,所以我想知道是否有更有效的方法来创建多个主题。 还是有一个简单的开关可以按需自动创建主题?
答案 0 :(得分:0)
将wurstmeister/kafka
容器与KAFKA_CREATE_TOPICS
环境变量一起使用
您可以使用更高级别的Kafka客户端,例如Spring-Kafka或Dropwizard-Kafka,它们可以提供主题创建功能。
否则,直接use AdminClient
建议不要在代理上启用自动主题创建,因为它具有默认的分区数和复制因子
答案 1 :(得分:0)
作为参考,使用AdminClient效率最高。
这里是一个例子:
java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:191)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:137)