首页 > 解决方案 > Spring Cloud Streams 将数据有条件地转发到 Kafka 主题

问题描述

我正在尝试根据一些评估将数据发送到不同的主题。我正在使用弹簧云流和卡夫卡

我怎样才能有条件地转发到 kafka 主题。我需要在我专门评论的地方插入SCS-kafka相关代码。

谢谢你。

    @EnableBinding(Sink.class)
public class SampleSink {

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private SomeService someService;

    @ServiceActivator(inputChannel = Sink.INPUT)
    public void processor(Message<?> message1) {


        EvaluateData evaluateData = someService.evaluateData(message1);

        String Result = String.valueOf(evaluateData.getResult());

        try {

            if(validationResult.equalsIgnoreCase("allgood")){

                //Send message1 to Topic1


            }

            else if (validationResult.equalsIgnoreCase("notgood")){
 new SomeException("topic1");

//向topic2发送数据

            }

            else {
                throw new SomeException("topic3");
            }

        }
        catch (SomeException e){

          //something

//分别向topic2和3发送数据 }

    }
}

标签: javaapache-kafkaspring-cloudspring-cloud-stream

解决方案


您要做的基本上是一个路由器,我们已经作为开箱即用的应用程序提供了它。它基本上是一个路由器接收器,它将根据您通过配置指定的条件路由消息。请在此处查看更多信息


推荐阅读