#java #spring #spring-boot #spring-kafka #spring-cloud-stream
Вопрос:
В настоящее время у меня есть функция spring clound, которая использует тему и публикует в другой теме. Но при определенных условиях мне нужно опубликовать сообщение в другой теме. В основном нужно опубликовать сообщение в нескольких темах из функции spring cloud.
Текущие фрагменты кода
@Bean
public Function<Message<InputMessage>, Message<OutputMessage>>
messageTransformer(){
return new KafkaTransformer();
}
public class KafkaTransformer
implements Function<
Message<InputMessage>, Message<OutputMessage>> {
@Override
public Message<OutputMessage> apply(
Message<InputMessage> inputMessage) {
try {
Message<OutputMessage> outputMessage = process(inputMessage);
return outputMessage;
} catch (Exception e) {
// need to send message to another topic ( which is other than dlq).
}
}
}
spring.cloud.stream.bindings.messageTransformer-in-0.destination=input.topic
spring.cloud.stream.bindings.messageTransformer-out-0.destination=output.topic
spring.cloud.function.definition=messageTransformer
Ответ №1:
Вы изучали возможность использования StreamBridge
API для этого? Похоже, это должно сработать для того, что вы ищете. Вот документы.