我在使用 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?有什么解决办法吗?
非常感谢。
最佳答案
如果您可以升级到 1.3.2,则可以使用 KafkaAdmin
创建主题。
但是,通常最好使用嵌入式代理进行测试 - 否则,如果代理不可用,您的测试将失败。对于 CI 构建来说,这尤其是一个问题。
关于java - Spring Kafka 应用程序的应用程序负载测试期间未找到主题错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298748/