【发布时间】:2020-07-15 08:39:12
【问题描述】:
我使用 Embedded Kafka 测试向 Kafka 发送消息,当发送失败时,我的代码会自动重新发送,所以我尝试停止 Embedded Kafka,然后在重新发送期间重新启动它。但我不知道如何停止和启动 Embedded Kafka。
【问题讨论】:
标签: spring-boot embedded-kafka
我使用 Embedded Kafka 测试向 Kafka 发送消息,当发送失败时,我的代码会自动重新发送,所以我尝试停止 Embedded Kafka,然后在重新发送期间重新启动它。但我不知道如何停止和启动 Embedded Kafka。
【问题讨论】:
标签: spring-boot embedded-kafka
Kafka 客户端代码将在发生故障时管理重新发送消息。您不需要为该行为编写测试 - 通过扩展,您可以进入真正的兔子洞,测试核心 Java 类行为等。
但是您可以使用
关闭并重新启动代理embeddedKafkaBroker.getKafkaServers().forEach(KafkaServer::shutdown);
embeddedKafkaBroker.getKafkaServers().forEach(KafkaServer::awaitShutdown);
// Send messages
embeddedKafkaBroker.getKafkaServers().forEach(KafkaServer::startup);
【讨论】: