在一个单Spring微服务中有多个replyingkafkatemplate< string,byte[],byte[]>

ha5z0ras  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(368)

我正在开发一个微服务,其中我需要使用spring-kafka-replyingkafkatemplate查询两个不同的微服务器。
当我用一个微服务尝试这一点时,它可以很好地工作,只提供一个回复主题,如下所示

@Bean
public ReplyingKafkaTemplate<String, byte[], byte[]> replyKafkaTemplate(ProducerFactory<String, byte[]> pf,
        KafkaMessageListenerContainer<String, byte[]> container) {
    return new ReplyingKafkaTemplate<>(pf, container);

}

@Bean
public ConsumerFactory<String, byte[]> consumerFactory() {
    return new DefaultKafkaConsumerFactory<>(consumerConfigs(), new StringDeserializer(),
            new ByteArrayDeserializer());
}

@Bean
public KafkaMessageListenerContainer<String, byte[]> replyContainer(ConsumerFactory<String, byte[]> cf) {
    ContainerProperties containerProperties = new ContainerProperties(**queryesultTopic**);
    return new KafkaMessageListenerContainer<>(cf, containerProperties);
}

但是现在我需要配置两个不同的主题。想知道如何在 Spring Kafka配置。

xuo3flqw

xuo3flqw1#

当你使用 ReplyingKafkaTemplate.sendAndReceive(ProducerRecord<K, V> record) ,可以指定 KafkaHeaders.REPLY_TOPIC 标题。
请参阅参考手册中的更多信息:
有关发送回复的更多信息,请参阅“使用@sendto转发侦听器结果”部分;在本例中,我们使用默认标头 KafKaHeaders.REPLY_TOPIC 指明回复的主题。

相关问题