小编dav*_*nko的帖子

Spring Kafka 测试 - 使用 EmbeddedKafka 在 @KafkaListener 中未接收数据

我们正在使用 Cucumber 对外部应用程序进行一些集成测试,我们在测试@KafkaListener. 我们设法使用 EmbeddedKafka 并将数据生成到其中。

但是消费者永远不会收到任何数据,我们也不知道发生了什么。

这是我们的代码:

生产者配置

@Configuration
@Profile("test")
public class KafkaTestProducerConfig {

    private static final String SCHEMA_REGISTRY_URL = "schema.registry.url";

    @Autowired
    protected EmbeddedKafkaBroker embeddedKafka;

    @Bean
    public Map<String, Object> producerConfig() {
        Map<String, Object> props = new HashMap<>();
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,
                embeddedKafka.getBrokersAsString());
        props.put(SCHEMA_REGISTRY_URL, "URL");
        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, KafkaAvroSerializer.class);
        return props;
    }

    @Bean
    public ProducerFactory<String, GenericRecord> producerFactory() {
        return new DefaultKafkaProducerFactory<>(producerConfig());
    }

    @Bean
    public KafkaTemplate<String, GenericRecord> kafkaTemplate() {
        return new KafkaTemplate<>(producerFactory());
    }

}
Run Code Online (Sandbox Code Playgroud)

消费者配置

@Configuration
@Profile("test")
@EnableKafka
public class KafkaTestConsumerConfig { …
Run Code Online (Sandbox Code Playgroud)

java apache-kafka spring-boot spring-kafka spring-kafka-test

6
推荐指数
1
解决办法
1013
查看次数