【发布时间】:2019-06-19 06:26:06
【问题描述】:
我正在尝试对使用 kafka、kafka-streams 和 cassandra 的应用程序进行集成测试。但是当我尝试设置测试类时,我遇到了 2 个错误: 错误 [main] BrokerMetadataCheckpoint:无法读取 dir 下的 meta.properties 文件 ERROR [main] KafkaServer: 无法读取日志目录下的 meta.properties
我正在使用 spring-boot-starter 2.1.2、spring-boot-starter-test 2.1.2、spring-kafka 2.2.0、spring-kafka-test 2.2.0、apache.kafka-streams 2.1.0
尝试更改 logs.dir 和 logs.dirs 参数。 使用@EnableKafka @EnableKafkaStreams
@RunWith(SpringRunner.class)
@SpringBootTest
@EmbeddedKafka(partitions = 3, controlledShutdown = false, count = 1, topics = {"zc.deviceposition"}, brokerProperties = {"listeners=PLAINTEXT://localhost:9092", "port=9092", "log.dir=/home/name/logs"})
@EmbeddedCassandra(timeout = 60000)
@CassandraDataSet(value = {"bootstrap_test.cql"}, keyspace = "statistics")
@ActiveProfiles("test")
@DirtiesContext
public class CassandraTripsAggregatorProcessorSupplierIntegrationTest {
@Test
public void someTest() {System.out.println("hello world");}
}
我希望使用嵌入式 kafka 运行上下文,但现在我收到一个错误,即 meta.properties 不存在
【问题讨论】:
-
我建议稍微简化一下这个问题,因为它似乎与 Cassandra 或 Kafka Streams 没有任何关系。核心问题是 Kafka 服务器需要一个 meta.properties 文件,但 Spring 的 EmbeddedKafkaBroker 不会生成这样的文件用于测试目的(至少据我所知)。
-
这是如何解决的?
-
使用预定义环境在 docker 中创建,但我认为它与安装或卸载整个系统相同。所以它不是程序化的解决方案
-
这个问题有什么问题吗?不幸的是,我仍然拥有它
标签: spring-boot-test embedded-kafka spring-kafka-test