/** 死信队列实战* 消费者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)相关推荐

  1. RabbitMQ死信实战(生产者)

    /** 死信队列之生产者代码** */public class Producer {//普通交换机的名称public static final String NORMAL_EXCHANGE = &qu ...

  2. Java秒杀系统实战系列~RabbitMQ死信队列处理超时未支付的订单(转)

    转自: https://juejin.cn/post/6844903903130042376 文末有源代码,非常棒 摘要: 本篇博文是"Java秒杀系统实战系列文章"的第十篇,本篇 ...

  3. 【分布式】Rabbitmq死信队列模型、实战场景---订单延迟30min支付处理

    分布式 内容管理 死信队列 死信队列demo 死信队列消息模型 平台订单支付超时 --- 演示 业务分析 代码实现 RabbitMQ 死信队列/ 延迟队列 - 延迟业务逻辑 最近可能分布式进入Redi ...

  4. RabbitMQ 死信队列详解

    一.死信的概念 死信,顾名思义就是无法被消费的消息.一般来说,Producer 将消息投递到 Broker 或者直接到 Queue 里了,Consumer 从 Queue 取出消息进行消费,但某些时候 ...

  5. RabbitMQ 死信/死信队列

    一.RabbitMQ 死信/死信队列 1.DLX Dead Letter Exchange 的缩写 DLX(Dead Letter Exchanges)死信交换,死信队列本身也是一个普通的消息队列,在 ...

  6. RabbitMq死信队列介绍

    一.官方地址信息 rabbitmq代码仓库:https://github.com/rabbitmq rabbitmq官网地址:https://rabbitmq.com rabbitmq死信交换机官网介 ...

  7. RabbitMQ - 死信队列(DLX)

    RabbitMQ - 死信队列(DLX) 配置死信队列 方式1 - RabbitMQ 管理后台配置死信队列 方式2 - 代码创建死信队列 验证 满足死信队列的条件 死信队列只是一个概念,本质就是普通的 ...

  8. Rabbitmq死信队列

    目录 1.什么是死信队列 2.产生死信队列的原因 3.代码实现---直连交换机 3.1.导入依赖 3.2.配置rabbitmq连接信息 3.3.编写配置类 3.4.编写生产者 3.5.编写消费者 3. ...

  9. RabbitMQ——死信队列

    1. 死信队列 1.1 概念 死信就是无法被消费的消息,消费者从队列中取消息时,由于某些特定原因导致消息无法被消费,即没有了后续的处理,就变成了死信继而有了死信队列. 1.2 应用场景 可以保证消息不 ...

最新文章

  1. 关于成功的因素-----谨记
  2. Java项目:日历万年历(java+swing)
  3. 多继承的构造函数和析构函数
  4. 双向slider滑动微信小程序组件slider组件
  5. mysql之存储引擎的选择
  6. HBase在淘宝的应用和优化小结
  7. 通过命令行使用 JAX-WS调用webservice
  8. 查询过去一个月有付款mysql_MySQL_mysql 月份查询该月有付款的数据,ktime 开始时间串 dtime 到期时间 - phpStudy...
  9. 动态生成类_springboot动态生成类属性
  10. QQ空间面试题放送,速度教科书式扑街补救offer!
  11. BlockingQueue - LinkedBlockingQueue常用API
  12. UnityWebRequest下载文件
  13. 三星note升级android9,三星Note9官方台版安卓9固件rom升级更新包:BRI-N960FXXS3CSI5
  14. PICKIT3往PIC16F877A烧录程序失败
  15. ESP8266和腾讯云的使用
  16. PDF怎么转图片?建议收藏这些方法
  17. iOS 16描述文件升级方法 iOS 16升级描述文件下载
  18. win10自带sftp服务器_如何使用OpenSSH在Win10中设置SFTP服务器
  19. 卡西欧计算机开机键,卡西欧手表怎么开机
  20. Java后台生成多个Excel并用Zip打包后(可以将excel文件放置到不同的目录)下载

热门文章

  1. Stars HDU 1541
  2. 大数高精运算-----乘法
  3. SmartGit破解方法
  4. 第一章 java多线程
  5. 1704班3组—高级软件测试作业—如何计算团队成员贡献分
  6. SQL Server分页查询方法整理
  7. RMI non-JRMP server at remote endpoint
  8. matlab 实现 stacked Autoencoder 解决图像分类问题
  9. ASP.NET Core:CMD命令行+记事本 创建Console程序和Web Application
  10. 2017年1月22日 10:00