You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot集成@EmbeddedKafka测试超时:主题缺失问题排查

Spring Boot Embedded Kafka集成测试超时问题排查

问题详情

运行Spring Boot集成测试时触发Kafka发送失败异常,核心错误为主题testtopic1元数据超时;测试在同事机器可正常运行,已尝试将生产者max.block.ms调至300000但问题未解决。此外发现错误日志中显示的主题为topic1,与application.yml中配置的embedded-test-topic不一致,怀疑实际加载的是application.properties配置文件。

错误栈

org.springframework.kafka.KafkaException: Send failed

    at org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:815)
    at org.springframework.kafka.core.KafkaTemplate.observeSend(KafkaTemplate.java:773)
    at org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:551)
    at com.baeldung.kafka.embedded.EmbeddedKafkaIntegrationTest.givenEmbeddedKafkaBroker_whenSendingWithDefaultTemplate_thenMessageReceived(EmbeddedKafkaIntegrationTest.java:48)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)
Caused by: org.apache.kafka.common.errors.TimeoutException: Topic testtopic1 not present in metadata after 60000 ms.

排查方向

  • 配置加载验证:检查项目中是否存在application.properties文件,确认其中Kafka主题配置是否为topic1;核对测试环境的配置加载顺序,Spring Boot中.properties与.yml的优先级是否因本地环境差异导致加载异常。
  • 主题初始化检查:确保测试类通过@EmbeddedKafka(topics = {"embedded-test-topic"})显式声明目标主题,或开启自动创建主题配置spring.kafka.admin.auto-create-topics=true;验证测试代码中KafkaTemplate发送时指定的主题是否与配置一致。
  • 端口与网络排查:检查本地是否有其他进程占用Embedded Kafka默认端口(9092),或测试代码中自定义端口未同步到生产者配置;关闭本地其他Kafka相关进程后重试测试。
  • 依赖版本一致性:对比本地与同事的Spring Kafka、Apache Kafka客户端依赖版本,版本差异可能导致Embedded Kafka行为不一致;排查pom.xml/build.gradle中的依赖冲突。
  • 测试上下文清理:尝试清理测试缓存(如IDEA执行Invalidate Caches / Restart),或在测试类添加@DirtiesContext注解强制刷新上下文。
  • 日志细节分析:重点查看测试启动日志,确认Embedded Broker是否成功启动、生产者是否正确连接、主题是否被创建;寻找配置加载或主题初始化阶段的异常线索。

内容的提问来源于stack exchange,提问作者Гончаренко Александр

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:08:18