首页 > 解决方案 > 嵌入式 Kafka:无法在 5000 毫秒内从 Kafka 检索消息

问题描述

我正在使用嵌入式 Kafka 进行一些集成测试。我的代码在 Kafka 中插入了一个元素,我在测试中检查了这条记录是否正确。我有很多具有这种行为的测试。如果我执行单个测试,它总是可以工作,但如果我执行所有测试,其中一些可能会随机失败。

java.util.concurrent.TimeoutException: Unable to retrieve a message from Kafka in 5000ms

我的代码:

    val recordFromKafka = DesMyClass.deserialize(EmbeddedKafka.consumeFirstMessageFrom(topic))
    assertResult(result) {
      recordFromKafka
    }

我收到此错误并且下一个测试也失败了,因为我从上一个测试中恢复了记录,从而产生了一系列错误。

看来这是卡夫卡的问题。任何想法?如果我没有得到任何记录,我曾想过再次调用操作 consumeFirstMessageFrom ,但这似乎不是一个好方法。我正在使用以下版本:

<dependency>
    <groupId>net.manub</groupId>
    <artifactId>scalatest-embedded-kafka_2.11</artifactId>
    <version>0.9.0</version>
    <scope>test</scope>
</dependency>

标签: testingapache-kafka

解决方案


推荐阅读