Как опубликовать сообщение в 2 темах кафки на основе условия — весенний облачный поток

#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 для этого? Похоже, это должно сработать для того, что вы ищете. Вот документы.