RabbitMQ系列之死信队列

代码片段

channel.exchangeDeclare("exchange.dlx","direct",true);
channel.exchangeDeclare("exchange.normal","fanout",true);
Map<String,Object> map = new HashMap<String,Object>();
map.put("x-message-ttl",10000);
map.put("x-dead-letter-exchange","exchange.dlx");
map.put("x-dead-letter-routing-key",ROUTING_KEY);
channel.queueDeclare("queue.normal",durable,exclusive,autoDelete,map);
channel.queueBind("queue.normal","exchange.normal","testR");

channel.queueDeclare("queue.dlx",durable,exclusive,autoDelete,null);
channel.queueBind("queue.dlx","exchange.dlx",ROUTING_KEY);

String message="测试消息死信队列";
channel.basicPublish("exchange.normal","rk",MessageProperties.PERSISTENT_TEXT_PLAIN,message.getBytes());

运行结果:

运行流程:

首先生产者携带路由键rk的消息,然后经过交换机exchange.normal  顺利存储到队列queue.normal中,由于队列设置了过期时间,10秒之内没有消费,消息变成过期消息,由于设定了该消息为dlx消息因此消息丢给了交换机exchange.dlx,这是交换机找到了与之绑定的队里,存储起来,即为死信队列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值