【问题标题】:Mocking SchemaRegistryClient in stream processor Consumer在流处理器消费者中模拟 SchemaRegistryClient
【发布时间】:2021-01-08 00:29:11
【问题描述】:

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

【问题讨论】:

    标签: spring-boot apache-kafka integration-testing confluent-schema-registry embedded-kafka


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2021-07-21
      • 2017-02-09
      • 2012-07-07
      • 1970-01-01
      相关资源
      最近更新 更多