【发布时间】:2019-09-01 06:17:21
【问题描述】:
我有一个简单的 Spring Boot 应用程序,它从 Kafka 读取数据并写入 Kafka。我用EmbeddedKafka 写了一个SpringBootTest 来测试所有这些。
主要问题是:有时测试失败是因为测试过早发送Kafka消息。这样,在 Spring 应用程序(或者准确地说是它的KafkaListener)准备好之前,消息就已经写入 Kafka。由于侦听器从 latest 偏移量读取(我不想更改我的测试的任何配置 - 除了 bootstrap.servers),它不会收到该测试中的所有消息。
有谁知道我如何在测试中知道KafkaListener 已准备好接收消息?
我能想到的唯一方法是等到/health 可用,但我不知道我是否可以确定这意味着KafkaListener 完全准备好了。
非常感谢任何帮助!
最好的问候。
【问题讨论】:
标签: spring spring-boot apache-kafka spring-kafka spring-kafka-test