RabbitMQ死信实战(消费者1)
生活随笔
收集整理的這篇文章主要介紹了
RabbitMQ死信实战(消费者1)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/** 死信隊列實戰* 消費者01* */public class Consumer01 {//普通交換機名稱public static final String NORMAL_EXCHANGE = "normal_exchange";//死信交換機名稱public static final String DEAD_EXCHANGE = "dead_exchange";//普通隊列名稱public static final String NORMAL_QUEUE = "normal_queue";//死信隊列名稱public static final String DEAD_QUEUE = "dead_queue";public static void main(String[] args) throws Exception{Channel channel = RabbitMqUtils.getChannel();//聲明死信和普通的交換機類型為directchannel.exchangeDeclare(NORMAL_EXCHANGE, BuiltinExchangeType.DIRECT);channel.exchangeDeclare(DEAD_EXCHANGE, BuiltinExchangeType.DIRECT);//聲明普通隊列HashMap<String, Object> arguments = new HashMap<>();//過期時間arguments.put("x-message-ttl",1000);//正常隊列設置死信隊列arguments.put("x-dead-letter-exchange",DEAD_EXCHANGE);//設置死信RoutingKeyarguments.put("x-dead-letter-routing-key","lisi");//聲明死信和普通隊列channel.queueDeclare(NORMAL_QUEUE,false,false,false,arguments);channel.queueDeclare(DEAD_QUEUE,false,false,false,null);//綁定普通的交換機與普通的隊列channel.queueBind(NORMAL_QUEUE,NORMAL_EXCHANGE,"zhangsan");//綁定死信的交換機與死信的隊列channel.queueBind(DEAD_QUEUE,DEAD_EXCHANGE,"lisi");System.out.println("等待接收消息......");DeliverCallback deliverCallback = (consumerTag,message) -> {System.out.println("Consumer01接收的消息是:" + new String(message.getBody()));};channel.basicConsume(NORMAL_QUEUE,true,deliverCallback,consumerTag->{});}
}
/** 死信隊列實戰* 消費者02* */public class Consumer02 {//死信隊列名稱public static final String DEAD_QUEUE = "dead_queue";public static void main(String[] args) throws Exception{Channel channel = RabbitMqUtils.getChannel();System.out.println("等待接收消息......");DeliverCallback deliverCallback = (consumerTag,message) -> {System.out.println("Consumer02接收的消息是:" + new String(message.getBody()));};channel.basicConsume(DEAD_QUEUE,true,deliverCallback,consumerTag->{});}
}
總結
以上是生活随笔為你收集整理的RabbitMQ死信实战(消费者1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RabbitMQ死信队列代码架构图
- 下一篇: RabbitMQ死信实战(生产者)