我有一个生产者(Source),它将消息写到Kafka输出通道,该生产者发送不同类型的对象。在使用者方面(Sink),我想在同一输入通道上使用多个@Streamlistener方法,每个方法具有不同的参数类型,并且目前无法正常工作,我得到了Duplicate @StreamListener mapping for 'input'

这是我的消费者代码:

@StreamListener(Sink.INPUT)
public void on(PostUpvotedEvent event) {

}

@StreamListener(Sink.INPUT)
public void on(PostDownvotedEvent event) {

}


是否有比使用单个@StreamListener方法更好的解决方案,该方法将测试消息类型以选择要调用的方法?

最佳答案

现在不支持同一绑定元素上的多个@StreamListener方法。最好像在您的情况下那样在入站通道上注册多个订户来支持此操作。

请创建功能请求here

09-26 20:44