0

我有一个基于 Reactor 的 Spring Boot Kafka 流处理应用程序,我正在为其编写集成测试。我正在使用 Spring 的@EmbeddedKafka代理。它工作得很好,我让它覆盖了在我的反应式处理器的消费者和发布者上配置的引导代理 url,但我还没有弄清楚如何在测试时为我的处理器处理模式注册表。我正在使用 ConfluentKafkaAvroSerializerKafkaAvroDeserializer类,并且只schema.registry.url在我的 Spring 应用程序配置中配置了该字段以注入到 Kafka 属性中。我正在使用 Confluent 的MockSchemaRegistryClient对于测试生产者和消费者,但我需要一种将这个模拟客户端注入我的流处理器代码中的实际消费者和生产者的方法,但我认为没有办法做到这一点。几乎似乎我需要更像模式注册表的嵌入式版本来指向他们喜欢嵌入式代理。我们的构建管道不支持启动容器,否则我会使用 Docker 或 Testcontainers。其他人已经解决了这个问题吗?任何帮助或建议表示赞赏。

4

1 回答 1

0

我设法弄清楚了这一点。mock://如果您使用以测试的 SerDes开头的 url,并且使用相同的模拟 url 覆盖注释schema.registry.url中的属性@SpringBootTest,那么您的处理器的消费者和生产者也将选择并使用这个模拟模式注册表客户端,一切正常!

于 2021-01-07T16:29:11.980 回答