【发布时间】:2020-12-04 03:42:53
【问题描述】:
我已经更新了一个项目的库,特别是我已经将 Spring Boot 从版本 2.2.6 更新到了 2.3.2。
正如the migration documentation 中提到的,这也意味着我的 Kafka 依赖项发生了变化,升级到 Spring Kafka 和 Kafka 2.5
但是,由于此更改,我的一些测试“随机”失败,例如,当我执行所有测试时,我在其中一些测试中遇到了这种失败(但并不总是在相同的测试中):
java.lang.IllegalStateException: More than one record for topic found
来自这个特定的行:
KafkaTestUtils.getSingleRecord(consumer, topicConfiguration.getTopic(event))
文档中没有提及为什么会发生这种情况,也没有其他日志错误消息可以说明为什么会发生这种情况。由于我没有更改我的应用程序的逻辑,我是否在迁移过程中遗漏了什么?
如果我尝试这样的事情:
KafkaTestUtils.getRecords(consumer)
.records(topicConfiguration.getTopic(event)).map { it }[0]
如果只获取第一个,之前有效的测试将因索引而失败,并返回 IndexOutOfBoundsException。
【问题讨论】:
标签: spring spring-boot kotlin spring-kafka spring-kafka-test