gpt4 book ai didi

Spring KafkaListener : How to know when it's ready

转载 作者:行者123 更新时间:2023-12-01 15:38:42 30 4
gpt4 key购买 nike

我有一个简单的 Spring Boot 应用程序,它从 Kafka 读取并写入 Kafka。我写了一个 SpringBootTest使用 EmbeddedKafka测试这一切。

主要问题是:有时测试失败是因为测试过早发送Kafka消息。这样,在 Spring 应用程序(或准确地说是它的 KafkaListener)准备就绪之前,消息已经写入 Kafka。由于监听器从 latest 读取偏移(我不想为我的测试更改任何配置 - 除了 bootstrap.servers),它不会收到该测试中的所有消息。

有谁知道我如何在测试中知道 KafkaListener准备好接收消息了吗?

我能想到的唯一方法就是等到/health可用,但我不知道我是否可以确定这意味着 KafkaListener准备好。

任何帮助是极大的赞赏!

此致。

最佳答案

如果您有 KafkaMessageListenerContainer实例,那么它很容易使用org.springframework.kafka.test.utils.ContainerTestUtils.waitForAssignment(Object container, int partitions) .

https://docs.spring.io/spring-kafka/api/org/springframework/kafka/test/utils/ContainerTestUtils.html

例如调用 ContainerTestUtils.waitForAssignment(container, 1);在您的测试设置中将阻塞,直到容器分配了 1 个分区。

关于Spring KafkaListener : How to know when it's ready,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55618477/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com