如何修复无法找到meta.properties的嵌入式kafka中的错误

fac*_*off 7 spring-boot-test embedded-kafka spring-kafka-test

我正在尝试使用kafka,kafka-streams和cassandra对应用进行集成测试。但是,当我尝试设置测试类时,我遇到了2个错误:错误[main] BrokerMetadataCheckpoint:无法读取dir下的meta.properties文件错误[主要] 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");}
}
Run Code Online (Sandbox Code Playgroud)

我期望使用嵌入式kafka运行上下文,但是现在我收到一个错误,指出meta.properties不存在

小智 -2

由于您在代理属性中使用自己的 log.dir,一种解决方案是在日志目录下创建一个具有一些最低配置的 meta.properties 文件:

version=0
broker.id=0
Run Code Online (Sandbox Code Playgroud)

我还建议将该文件和目录放置在项目测试目录中的某个位置(即不一定在 /home/ 下),并确保每次测试运行后都将其正确清空。