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

时间:2018-01-17 10:23:26

标签: java spring-boot spring-test spring-kafka

我在使用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 个答案:

答案 0 :(得分:1)

如果您可以升级到1.3.2,则可以使用KafkaAdmin创建主题。

Documentation here

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