Spring Kafka 应用程序的应用程序负载测试期间未找到主题错误

Topic not found error during application load test of a Spring Kafka application

我在使用 Spring Boot 1.5.8 开发的应用程序中使用 Spring Kafka 1.2.3。与许多 Spring 应用程序一样,我有一个测试试图验证 Spring 所做的组件解析配置。测试类似于以下内容。

@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTest {
    @Test
    public void loadContext() throws Exception {}
}

问题是我也在我的应用程序中使用了 Kafka Streams。据我所知,Kafka Streams 要求 所有用户主题都在应用程序启动之前创建

事实上,我在执行上述测试时遇到了错误。有一个包含流定义的专用 @Configuration 文件。

org.apache.kafka.streams.errors.TopologyBuilderException: Invalid topology building: stream-thread [StreamThread-1] Topic not found: asd

我该如何克服这个问题?我是否被迫在这个简单的测试中使用 Kafka Embedded?有什么解决方法吗?

非常感谢。

如果能升级到1.3.2,可以用KafkaAdmin创建话题

Documentation here.

但是,通常最好使用嵌入式代理进行测试 - 否则如果代理不可用,您的测试将失败。这对于 CI 构建来说尤其是一个问题。