RabbitMQ实战 - Return机制

1 什么是Return机制

Return Listener 用于处理一些不可路由的消息。正常情况下,Pro通过指定一个Exchange和Routingkey,把消息送到某队列,然后Con监听队列,进行消费处理操作。

但是,如果我们在发送消息时,当前Exchange不存在或Routingkey路由不到,若要监听这种不可达的消息,就要用到Return Listener

  • Return机制示意图
  • RabbitMQ实战 - Return机制

2 Return机制的实现

添加return监听:addReturnListener,Pro去监听这些不可达的消息,做一些后续处理。

比如记录消息日志或及时去跟踪记录,有可能重新设置一下就好了。

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

  • true,则监听器会接收到路由不可达的消息,然后进行后续处理
  • false,则broker自动删除该消息

3 代码实战

  • Con
  • RabbitMQ实战 - Return机制
  • Pro
  • RabbitMQ实战 - Return机制
  • 启动Con
  • RabbitMQ实战 - Return机制
  • RabbitMQ实战 - Return机制
  • RabbitMQ实战 - Return机制
  • 启动Pro

由于Pro设置的是一个错误的路由key,所以消费端没有任何打印,而生产端打印了如下内容

RabbitMQ实战 - Return机制

  • 如果我们将 Mandatory 属性设置为false,对于不可达的消息会被Broker直接删除,那么Pro就不会进行任何打印了。如果我们的路由key设置为正确的,那么Con能够正确消费,Pro也不会进行任何打印。
上一篇:RabbitMQ-从基础到实战(3)— 消息的交换(上)


下一篇:MySQL在大型网站的应用架构演变