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

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

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

  1. @Bean
  2. public ReplyingKafkaTemplate<String, byte[], byte[]> replyKafkaTemplate(ProducerFactory<String, byte[]> pf,
  3. KafkaMessageListenerContainer<String, byte[]> container) {
  4. return new ReplyingKafkaTemplate<>(pf, container);
  5. }
  6. @Bean
  7. public ConsumerFactory<String, byte[]> consumerFactory() {
  8. return new DefaultKafkaConsumerFactory<>(consumerConfigs(), new StringDeserializer(),
  9. new ByteArrayDeserializer());
  10. }
  11. @Bean
  12. public KafkaMessageListenerContainer<String, byte[]> replyContainer(ConsumerFactory<String, byte[]> cf) {
  13. ContainerProperties containerProperties = new ContainerProperties(**queryesultTopic**);
  14. return new KafkaMessageListenerContainer<>(cf, containerProperties);
  15. }

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

xuo3flqw

xuo3flqw1#

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

相关问题