rabbitmq学习笔记之死信队列(DLX)

死信队列 dead-letter-exchange

可以与备份交换机类比学习

备份交换机处理的是,消息未被路由的情况进入备份交换机绑定的队列

死信队列处理的是,

1.消息拒绝且requeue参数为false

2.消息过期

3.队列达到最大长度

二  例子

channel.exchangeDeclare("exchange.dlx","direct",true);//声明一个交换机 后面与死信队列绑定

channel.exchangeDeclare("exchange.normal","fanout",true);//声明一个广播交换机

Map <String ,Object> args = new HashMap <String ,Object>( );

args.put("x-message-ttl","10000");//队列中消息超时时间

args.put(" x-dead-letter-exchange","exchange.dlx");

args.put(" x-dead-letter-routing-key","rountingkey");

channel.queueDeclare( "queue.normal " , true , false , false , args);//声明一个队列

channel .queueBind( "queue.normal" , " exchange .normal" , "");//队列绑定到交换机

channel. queueDec1are( "queue.d1x " , true , false , false , null) ;//声明一个队列

channel .queueBind( "queue.dlx" , " exchange.dlx" , "routingkey");//绑定死信队列

测试

channel . basicPublish( " exchange.normal" , "rk" ,
MessageProperties.PERSISTENT_TEXT_PLAIN , " dlx " .getBytes()) ;

//发送到正常的广播交换机exchange.normal上,存入到quque.normal,10s后过期,则会转发到交换机

exchange.dlx上,此时,根据设置的x-dead-letter-routing-key ,匹配到了queue.dlx,所以,最后消息存入;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值