我正在开发一个微服务,其中我需要使用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配置。
1条答案
按热度按时间xuo3flqw1#
当你使用
ReplyingKafkaTemplate.sendAndReceive(ProducerRecord<K, V> record)
,可以指定KafkaHeaders.REPLY_TOPIC
标题。请参阅参考手册中的更多信息:
有关发送回复的更多信息,请参阅“使用@sendto转发侦听器结果”部分;在本例中,我们使用默认标头
KafKaHeaders.REPLY_TOPIC
指明回复的主题。