Несколько ОтветовKafkaTemplateв одном пружинном микросервисе - PullRequest
0 голосов
/ 22 октября 2018

Я разрабатываю микросервис, в котором мне необходимо запросить два разных микросервиса с помощью 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);
}

но теперь я хочу настроить две разные темы.и интересно как это сделать весной конфиг кафки.

1 Ответ

0 голосов
/ 22 октября 2018

Когда вы используете ReplyingKafkaTemplate.sendAndReceive(ProducerRecord<K, V> record), вы можете указать KafkaHeaders.REPLY_TOPIC заголовок.

См. Дополнительную информацию в Справочном руководстве :

См.раздел «Пересылка результатов прослушивателя с использованием @SendTo» для получения дополнительной информации об отправке ответов;в этом случае мы используем заголовок по умолчанию KafKaHeaders.REPLY_TOPIC, чтобы указать, к какой теме относится ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...