【问题标题】:spring cloud stream kafka : Duplicate @StreamListener mapping for 'input'spring cloud stream kafka:“输入”的重复@StreamListener映射
【发布时间】:2017-02-16 21:10:45
【问题描述】:

我有一个生产者 (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 方法更好的解决方案来测试消息类型以选择要调用的方法?

【问题讨论】:

    标签: java spring spring-boot spring-cloud-stream spring-kafka


    【解决方案1】:

    现在不支持在同一个绑定元素上使用多个 @StreamListener 方法。在您的情况下,最好支持这一点,以便在入站频道上注册多个订阅者。

    请创建功能请求here

    【讨论】:

    • 目前不允许这样做可能有一些真正的原因。我不确定。目前,基于message handler 的StreamListeners 使用map,它由每个可绑定元素的消息处理方法组成。在您的input 绑定名称的情况下,将在该map 中注册单个处理程序方法。目前,map 仅在创建上下文之前使用。让我们看看我们如何从这里开始。
    猜你喜欢
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 2019-04-25
    • 2018-04-28
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多