Apache kafka 多回复卡夫卡模板<;字符串,字节[],字节[]>;在一个单弹簧微服务中

Apache kafka 多回复卡夫卡模板<;字符串,字节[],字节[]>;在一个单弹簧微服务中,apache-kafka,spring-kafka,Apache Kafka,Spring Kafka,我正在开发一个微服务,其中我需要使用spring kafka Replying KafkaTemplate查询两个不同的微服务 当我尝试使用一个微服务时,它通过提供一个单一的回复主题工作良好,如下所示 @Bean public ReplyingKafkaTemplate<String, byte[], byte[]> replyKafkaTemplate(ProducerFactory<String, byte[]> pf, KafkaMessageLis

我正在开发一个微服务,其中我需要使用spring kafka Replying KafkaTemplate查询两个不同的微服务

当我尝试使用一个微服务时,它通过提供一个单一的回复主题工作良好,如下所示

@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);
}
@Bean
公共回复KafkatEmplate回复KafkatEmplate(生产工厂pf,
卡夫卡快递(集装箱){
返回新的回复KafkatTemplate(pf,容器);
}
@豆子
公共消费者工厂消费者工厂(){
返回新的DefaultKafkanConsumerFactory(consumerConfigs(),new StringDeserializer(),
新的ByteArraydSerializer());
}
@豆子
public KafkCamessageListenerContainer replyContainer(ConsumerFactory cf){
ContainerProperties ContainerProperties=新的ContainerProperty(**QueryResultTopic**);
返回新的KafkamessageliesStenerContainer(cf,containerProperties);
}

但是现在我想配置两个不同的主题。想知道如何在spring kafka配置中实现这一点。

当您使用
回复KafkaTemplate.sendAndReceive(ProducerRecord记录)
时,您可以指定
KafkaHeaders.REPLY\u主题
标题

有关更多信息,请参见:

有关发送回复的更多信息,请参阅“使用@SendTo转发侦听器结果”部分;在本例中,我们使用默认标题
KafKaHeaders.REPLY\u TOPIC
来指示回复指向哪个主题