高级特性-RabbitMQ TTL死信队列+延迟队列

DBC 1.6K 0

高级特性之-RabbitMQ死信队列 + TTL介绍《上》
简介:讲解RabbitMQ的的死信队列+ TTL《上》

什么是TTL

time to live 消息存活时间

如果消息在存活时间内未被消费,则会别清除

RabbitMQ支持两种ttl设置

单独消息进行配置ttl
整个队列进行配置ttl(居多)

什么是rabbitmq的死信队列

没有被及时消费的消息存放的队列
什么是rabbitmq的死信交换机

Dead Letter Exchange(死信交换机,缩写:DLX)当消息成为死信后,会被重新发送到另一个交换机,这个交换机就是DLX死信交换机。

消息有哪几种情况成为死信

消费者拒收消息(basic.reject/ basic.nack),并且没有重新入队 requeue=false
消息在队列中未被消费,且超过队列或者消息本身的过期时间TTL(time-to-live)
队列的消息长度达到极限
结果:消息成为死信后,如果该队列绑定了死信交换机,则消息会被死信交换机重新路由到死信队列

高级特性-RabbitMQ TTL死信队列+延迟队列插图
RabbitMQ管控台消息TTL测试

队列过期时间使用参数,对整个队列消息统一过期

x-message-ttl
单位ms(毫秒)
消息过期时间使用参数(如果队列头部消息未过期,队列中级消息已经过期,已经还在队列里面)

expiration
单位ms(毫秒)
两者都配置的话,时间短的先触发

RabbitMQ Web控制台测试

新建死信交换机(和普通没区别)
高级特性-RabbitMQ TTL死信队列+延迟队列插图2
新建死信队列 (和普通没区别)
高级特性-RabbitMQ TTL死信队列+延迟队列插图4
死信交换机和队列绑定
高级特性-RabbitMQ TTL死信队列+延迟队列插图6
新建普通队列,设置过期时间、指定死信交换机
高级特性-RabbitMQ TTL死信队列+延迟队列插图8
测试:直接web控制台往product_qeueu发送消息即可

这里放出操作图片:一步一步来

高级特性-RabbitMQ TTL死信队列+延迟队列插图10
设置三步后即可绑定相应的死信路由器

这里点击进入一个队列 我们模拟发消息到这个队列

高级特性-RabbitMQ TTL死信队列+延迟队列插图12
这里点击进入一个队列 我们模拟发消息到这个队列

高级特性-RabbitMQ TTL死信队列+延迟队列插图14
十秒过后,此消息就会进入到了死信队列!!!/span>

发表评论 取消回复
表情 图片 链接 代码

分享