【发布时间】:2019-06-24 11:02:27
【问题描述】:
我正在为我的 Spring Boot 应用程序编写 Junit 测试用例(使用 @EmbeddedKafka),该应用程序广泛使用 Spring-kafka 与其他服务和其他操作进行通信。
一个典型的例子是从 kafka 中删除数据(我们在 kafka 中推送 null 消息)。
目前在 delete() 方法中,我们首先检查 kafka 中是否存在任何请求删除的消息。 然后我们在 Kafka 中为该消息键推送 null
为上述方法逻辑编写 Junit 的步骤。
@Test
public void test(){
//Push a message to Kafka (id=1234)
//call test method service.delete(1234);
//internally service.delete(1234) checks/validate whether message exists in kafka and then push null to delete topic.
//check delete topic for delete message received.
// Assertions
}
这里的问题是 Kafka 总是抛出 message not found 异常。在 service.delete() 方法中。
在控制台中检查日志时。我发现我的生产者配置为 kafka 使用不同的端口,而消费者配置使用不同的端口。
我不确定我是否遗漏了一些细节,或者这种行为的原因是什么。 任何帮助将不胜感激。
【问题讨论】:
-
您需要显示所有配置(和日志)。
-
请看我的回答。
标签: spring-boot spring-kafka embedded-kafka spring-kafka-test