0

我需要一种根据传入消息的类型动态解析入站通道的方法。我不是在寻找此链接 https://cloud.spring.io/spring-cloud-static/spring-cloud-stream/3.0.0.M1/spring-cloud-stream 中已经提到的任何基于标头的解决方案。 html#_using_streamlistener_for_content_based_routing

必须根据消息的类型进行解析。如果有一个自定义绑定可以在应用程序启动时完成以便能够做到这一点,那应该没问题;请给我一些关于如何实现这一目标的示例。

4

1 回答 1

2

Spring Cloud Stream 中没有这样的支持。

Apache Kafka 项目的底层 Spring 确实支持此类场景。

@KafkaListener上一课

它要求负载已经被 Kafka 反序列化器反序列化;那么调用的方法取决于有效负载类型。

它还支持后备“默认”方法。

@KafkaListener(id = "multi", topics = "myTopic")
static class MultiListenerBean {

    @KafkaHandler
    public void listen(String foo) {
        ...
    }

    @KafkaHandler
    public void listen(Integer bar) {
        ...
    }

    @KafkaHandler(isDefault = true)
    public void listenDefault(Object object) {
        ...
    }

}
于 2020-04-11T15:33:12.983 回答