我在使用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 ?任何解决方法?
非常感谢。
答案 0 :(得分:1)
如果您可以升级到1.3.2,则可以使用KafkaAdmin
创建主题。
但是,使用嵌入式代理进行测试通常会更好 - 否则如果代理不可用,您的测试将失败。对于CI构建而言,这尤其是一个问题。