java - Spring Cloud 流卡夫卡 : Duplicate @StreamListener mapping for 'input'

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

我有一个生产者(Source),它将消息写入 Kafka 输出 channel ,该生产者发送不同类型的对象。在消费者端(Sink),我希望在同一输入 channel 上有多个@Streamlistener方法,每个方法具有不同的参数类型,但目前它不起作用,我得到了“输入”的重复@StreamListener映射

这是我的消费者代码:

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

}

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

}

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

最佳答案

现在不支持同一绑定(bind)元素上的多个@StreamListener方法。最好支持这一点,就像您在入站 channel 上注册多个订阅者的情况一样。

请创建功能请求 here

关于java - Spring Cloud 流卡夫卡 : Duplicate @StreamListener mapping for 'input' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39924517/

相关文章:

java - 如何根据引用的实体交换@JsonBackReference和@JsonManagedReference

Spring Boot @Value 属性

java - 在流上使用 Collections.toMap() 时如何保持列表的迭代顺序?

java - 使用 Java IText 设置现有 PDF 文档的新页面大小

spring - Neo4j Cypher Query "NOT IN"不起作用, "IN"起作用

spring-boot - 在测试中排除应用程序事件监听器?

java - 出现错误 java.lang.NoClassDefFoundError : org/mockito/MockitoAnnotations$Mock

java - 在 Spring Boot 应用程序中集成 Apache guacamole

java - 线程中的异常 "main"java.lang.IllegalStateException : Cannot get a text value from a numeric cell

java - 如何让Android返回一个内部类对象给flutter