栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

MQ延迟机制

MQ延迟机制

延迟机制 延迟队列

延迟队列——消息进入到队列之后,延迟指定的时间才能被消费者消费AMQP协议和RabbitMQ队列本身是不支持延迟队列功能的,但是可以通过TTL(Time To Live)特性模拟延迟队列的功能TTL就是消息的存活时间。RabbitMQ可以分别对队列和消息设置存活时间

在创建队列的时候可以设置队列的存活时间,当消息进入到队列并且在存活时间内没有消费者消费,则此消息就会从当前队列被移除;创建消息队列没有设置TTL,但是消息设置了TTL,那么当消息的存活时间结束,也会被移除;一般设置每个消息的存活时间相等,即使不等也要保持前面消息的存活时间小于后面消息,因为队列是满足先进先出原则的消费,只有第一个消息被消费才能到第二个消息,如果后面的消息存活时间很短,等到前面消息处理完,后面的消息也被移除了,就是后面是无效消息。当TTL结束之后,我们可以指定将当前队列的消息转存到其他指定的队列 使用延迟队列实现订单支付监控

死信队列:没有消费者,但设置了消息TTL存活时间,等过期时间一到,所以消息要么转存到其他队列,要么移除。

实现流程图


**订单延时支付功能实现:**准备一个路由模式的交换机,一个死信队列存放消息,但是没有消费者消费它,一个queue2消息队列不存放消息,只接收死信队列转存的过期消息,有B服务消费queue2队列,这样就可以保障B服务会在30分钟后检查支付状态(因为一开始queue2没有存消息,B消费者不能消费,只有在30分钟后,死信队列转存过期消息到queue2,B才能消费)。

创建交换机和队列




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/751754.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号