浩克网 手游攻略 软件教程 RabbitMQ 入门系列:9、死信队列:真不适合当延时队列

RabbitMQ 入门系列:9、死信队列:真不适合当延时队列

时间:2023-08-23 10:35:30 来源:网络整理 浏览:0

延迟队列用于。。发生一段时间后需要特殊处理的场景,例如:

1.在电子商务的支付系统中,如果用户下单后n分钟不付款,订单就会自动取消。2.用户浏览商品很久都没有下单,再推送相关商品和优惠券。3.用户注册或修改生日后:生日短信推送等。4.7天后自动确认收货。

.对于这种应用程序,使用消息队列可能适合某些个人,但对于整个系统应用程序来说并不可靠。消息队列的核心应用是保持内存的队列,内存是不断产生和消耗的,使系统稳定流畅地保持在最佳状态。

延迟队列的核心是消息的积压,这显然不符合消息队列的设计。我们来看看死信队列是如何实现网络传输中的延迟队列的。

2、死信队列的编码:使用(var频道=兔子。实例。默认连接。创建模型()){//定义普通队列来接收丢弃的信息渠道queue declare(' dead ');字典dic2=新字典();dic2 .添加(' x-死信-交换'' ');//使用默认交换机dic2 .Add('x-dead-letter-routing-key '' dead ');//设置转移到的队列dic2 .Add('x-message-ttl '6000);//设置过期时间渠道QueueDeclare('sendtodead '),参数:DIC 2);渠道BasicPublish('' sendtodead 'false,null,Encoding .UTF8。GetBytes('6秒就过期了1。

3.死信队列的应用场景:1 .队列有统一的过期时间,不能使用单个消息的过期时间:

因为MQ不扫描整个队列,只扫描第一个队列来判断是否过期,所以要求高级队列的必须先过期。2.到期时间要短(根据可能积压的数据,一个核心考虑是:10万-100万条数据)避免数据长期积压。

对于长期不消费的,不要存放在MQ里。毕竟MQ的核心是内存队列,不是磁盘队列。4.死信队列:为什么不适合作为延迟队列?了解了死信队列后,你会发现,其实在一个系统中,只有n分钟后才需要处理逻辑的场景。

比较合适,n天后要处理的其他事情不靠谱。而你用了n分钟的场景,你用其他场景吗?

用过的,不靠谱!不,我们必须使用其他方案。方案会不会很多样化,不方便管理?总结:1。如果您必须使用死信队列作为延迟队列,您应该建立许多在第n分钟到期的队列。2.如果您必须使用死信队列作为延迟队列,

那么下一篇文章介绍的官方延迟队列插件会比死信队列更合适。

标题:RabbitMQ 入门系列:9、死信队列:真不适合当延时队列
链接:https://www.52hkw.com/news/rj/56736.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
Tiktok专用的梯子加速器(TK加速器全球加速)

Tiktok作为当前最火爆的短视频平台,受到了全球用户的热烈欢迎。然而,由于网络限制或者其他原因,很多用户在观看

2023-08-23
怎么不让快递放菜鸟驿站

菜鸟裹裹怎么禁止放快递?经常网购的小伙伴都知道,如果附近有菜鸟驿站,那么驿站的快递员会默认选择放在驿站中,并

2023-08-23
菜鸟驿站怎么送货上门

菜鸟裹裹怎么送货上门?有过菜鸟驿站拿快递的小伙伴都知道,很多菜鸟驿站在派送快递时,默认是放在菜鸟驿站,需要我

2023-08-23
蚂蚁庄园2021年3月4日最新答案

蚂蚁庄园3月4日答案最新是什么?在支付宝蚂蚁庄园每日一题中,每天都会有多个问题等着大家来回答,回答正确后即可

2023-08-23