return消息机制【3-6】
return listener 用于处理一些不可路由的消息。
我们的消息生产者,通过指定一个exchange和routingkey,把消息送达到某一个队列中,人后我们的消费者监听队列,进行消费处理操作。
但是在某种情况下,如果我们在发送消息的时候,当前的exchange不存在或者制定的路由key路由不到,这个时候如果我们需要监听这种不可达的消息,就要使用return listener。
mandatory, 设置为true,则监听器会接收到路由不可达的消息, 然后进行处理,如果设置为false,那么broker端自动删除该消息。
代码演示
生产者
package com.mq.rabbit.returnlistener;
import com.rabbitmq.client.*;
import java.io.IOException;
/**
* @Author Mqs
* @Date 2018/10/27 22:05
* @Desc
*/
public class Producer {
public static void main(String[] args) throws Exception{
// 1、创建连接工厂
ConnectionFactory factory = new ConnectionFactory();
factory.setVirtualHost("/");
factory.setPort(AMQP.PROTOCOL.PORT);
factory.setHost("192.168.200.130");
factory.setUsername("mqs");
factory.setPassword("mqs123");