Spring Cloud Stream Kafka消费者测试

时间:2018-10-11 14:15:40

标签: apache-kafka-streams spring-cloud-stream

我正在尝试按照GitHub a link

上的建议设置测试
        Map<String, Object> senderProps = KafkaTestUtils.producerProps(embeddedKafka);
    DefaultKafkaProducerFactory<Integer, String> pf = new DefaultKafkaProducerFactory<>(senderProps);
    try {
        KafkaTemplate<Integer, String> template = new KafkaTemplate<>(pf, true);
        template.setDefaultTopic("words");
        template.sendDefault("foobar");

    --> ConsumerRecord<String, String> cr = KafkaTestUtils.getSingleRecord(consumer, "output");
        log.debug(cr);
    }
    finally {
        pf.destroy();
    }

其中StreamProcessor设置为

@StreamListener
    @SendTo("output")
    public KStream<?, WordCount> process(@Input("input") KStream<Object, String> input) {

        return input.map((key, value) -> new KeyValue<>(value, new WordCount(value, 10, new Date(), new Date())));
    }

->由于@Streamprocessor具有@SendTo(“ output”)

,所以行从不消耗我认为应该位于主题“输出”上的消息

  • 我希望能够测试流处理的消息。

1 个答案:

答案 0 :(得分:0)

您需要从output绑定到的实际主题中汲取经验。 您有spring.cloud.stream.bindings.output.destination的配置吗?那应该是您需要使用的值。如果未设置,则默认值将与绑定相同-在这种情况下为output