没有合适的资源?快使用搜索试试~ 我知道了~
3.8)死信队列(死信交换机) 1.1)什么是死信 1.2)消息变成死信的几种情况 1.3)死信队列也是一个正常的exchange,也会通过routingkey
资源详情
资源评论
资源推荐
3.8)死信队列(死信交换机)
一:死信队列DLX(Dead-leater-exchange)
1.1)什么是死信?
就是在队列中的消息如果没有消费者消费,那么该消息就成为一个死信,那这个
消息被重新发送到另外一个exchange上的话,
那么后面这个exhcange就是死信队列
1.2)消息变成死信的几种情况
消息被拒绝:(basic.reject/basic.nack)并且requeue(重回队列)的属性设置为
false 表示不需要重回队列,那么该消息就是一个死信消息
消息TTL过期
消息本身设置了过期时间,或者队列设置了消息过期时间x-message-ttl
队列达到最大长度:比如队列最大长度是3000 ,那么3001消息就会被送到死信队列上.
1.3)死信队列也是一个正常的exchange,也会通过routingkey 绑定到具体的队列上。
1.4)代码演示;
public class DLX_CustomConsumer extends DefaultConsumer {
private Channel channel;
/**
* Constructs a new instance and records its association to the passed-in channel.
*
* @param channel the channel to which this consumer is attached
*/
public DLX_CustomConsumer(Channel channel) {
super(channel);
this.channel = channel;
}
public void handleDelivery(String consumerTag,
Envelope envelope,
AMQP.BasicProperties properties,
byte[] body)
throws IOException
{
System.out.println("为了测试死信队列,我们进行nack");
//把消息变为死信 通过nack 且requeue不进行重新发送
channel.basicNack(envelope.getDeliveryTag(),false,false);
}
}
城北伯庸
- 粉丝: 27
- 资源: 315
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0