首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring-AMQP -基于消息头的路由

Spring-AMQP -基于消息头的路由
EN

Stack Overflow用户
提问于 2020-04-14 01:24:10
回答 1查看 41关注 0票数 0

根据文档:https://docs.spring.io/spring-amqp/docs/2.2.5.RELEASE/reference/html/#async-annotation-driven

我们可以根据消息的转换类类型使用不同的处理程序,如下所示:

代码语言:javascript
复制
@RabbitListener(id="multi", queues = "someQueue")
@SendTo("my.reply.queue")
public class MultiListenerBean {

    @RabbitHandler
    public String thing2(Thing2 thing2) {
        ...
    }

    @RabbitHandler
    public String cat(Cat cat) {
        ...
    }

    @RabbitHandler
    public String hat(@Header("amqp_receivedRoutingKey") String rk, @Payload Hat hat) {
        ...
    }

    @RabbitHandler(isDefault = true)
    public String defaultMethod(Object object) {
        ...
    }

}

我认为这在性能上不会很好,因为它必须进行反复试验来转换传入的有效负载。

取而代之的是,如何根据条件进行过滤,比如头值?如果header‘’operation‘=“Order”,则将消息有效负载转换为Order类。

EN

回答 1

Stack Overflow用户

发布于 2020-04-14 01:31:31

,我认为这在性能上不会很好,因为它必须进行反复试验才能转换传入的有效负载。

通常,类型信息在报头中传递,MessageConverter使用该信息来创建有效负载-没有“试验和错误”。

如果您不使用附带的转换器,您可以基于header['operation']创建自己的转换器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61193191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档