我通过一个简单的测试创建了一个新的spring boot项目:
@RunWith(SpringRunner.class)
@SpringBootTest
public class ExampleApplicationTests {
@Test
public void contextLoads() {
}
}
当我运行此测试时,它会成功。但是,如果我将任何带有方法@KafkaListener
的方法添加到任何服务中,则:
@KafkaListener(topics = "test", groupId = "v-group")
public void test(){
log.info("test");
}
并运行测试,有时它会工作并引发异常:
Caused by: org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exception is org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata
答案 0 :(得分:0)
默认情况下,在加载应用程序上下文时,框架将start()
用作侦听器的侦听器容器。
您可以将autoStartup
属性设置为false
,以防止容器启动。
@KafkaListener(topics = "test", groupId = "v-group", autoStartup = "false")
public void test(){
log.info("test");
}