美文网首页从零学Java笔录凯哥Java-工作总结
RabbitMQ系列教程 高级篇五 return消息机制

RabbitMQ系列教程 高级篇五 return消息机制

作者: 凯哥Java | 来源:发表于2019-07-27 20:47 被阅读0次

    RabbitMQ消息中间件技术精讲12 高级篇五 return消息机制

    Return消息机制:

    Return Listener的使用是用于处理一些不可路由的消息

    我们的消息生产者,通过指定的路由(Exchange)和Routingkey,把消息送达到某一个队列中去,然后我们的消费者监听队列,进行消费处理操作。

    但是,在某些场景或情况下,如果我们在发送消息的时候,当前的exchange不能在或者是指定的routingkey路由不到,这种情况下,如果我们需要监听这种不可达的消息,就可以使用return listener了。

    使用:

    在基础API中有一个关键的配置项:

    Mandatory:如果设置为ture,则监听器会接收到路由不可达的消息,然后进行后续处理,如将不可达消息记录日志或者给开发人员发送警报有点等等;如果未false,那么broker端自动删除该消息。

    流程图:

    生产端代码:

    在生产端添加returnListener监听

    发送消息:

    在发送消息的时候第三个参数,设置为true标识接收returnListener的设置为false当交换机或者routingkey路由不到后,会自动抛弃消息的。

    发送测试:

    发送正确的消息,查看消费者端:

    正常消费。

    发送错误的routingkey,设置mandatory为false。查看生成端和消费端:

    生产者代码修改:

    生成者:

    消费者:

    我们发现,生产者正常发送消息,但是消费者接收不到消息。因为routing key是错误的,所以消费者接收不到。在页面管控台查看,也没有消息。所以MQ已经将错误的消息抛弃了。

    下面我们将mandatory为true,还是发送错误的routingkey。

    修改生产者代码:

    我们启动消费者和生产者之后,在生产者的控制台打印如下:

    我们可以看到返回code时312,返回消息时:no_route等等其他消息。

    说明已经达到了我们预期结果。

    本文总结:

    相关代码已发布在git上,欢迎大家下载查看

    下节预告:

    在下节课中,我们将讲解消费端自定义监听器

    git地址,访问原文:http://kaigejava.com/article/detail/520

    或者关注凯哥公众号:凯哥Java(kaigejava)获取

    相关文章

      网友评论

        本文标题:RabbitMQ系列教程 高级篇五 return消息机制

        本文链接:https://www.haomeiwen.com/subject/nnqyrctx.html