zeromq中倒是直接支持这个功能的。
类似于设定队列长度或大小,超过多少条数据(或多大数据size)即不接纳新的数据或者是丢弃最
旧的数据。
rabbitmq中没有这个设置,单从应用的角度出发,新的机制中出现了一个曲线式的方案,通过设定 x-expires 参数实现伪auto-delete功能:在设定时间内没有消费者,则队列自动删除。如此也算间接解决了:队列过于堆积导致服务崩溃的问题。
由于用了kombu框架,如此这般:
如果有兄台知道真正实现QueueSize or length的预设方案,望不吝赐教~
(仅作备忘)
类似于设定队列长度或大小,超过多少条数据(或多大数据size)即不接纳新的数据或者是丢弃最
旧的数据。
rabbitmq中没有这个设置,单从应用的角度出发,新的机制中出现了一个曲线式的方案,通过设定 x-expires 参数实现伪auto-delete功能:在设定时间内没有消费者,则队列自动删除。如此也算间接解决了:队列过于堆积导致服务崩溃的问题。
由于用了kombu框架,如此这般:
Queue(qname, exchange, routing_key=key,queue_arguments={'x-expires':100000})#这里的单位是微秒,1000=1s
如果有兄台知道真正实现QueueSize or length的预设方案,望不吝赐教~
(仅作备忘)
本文探讨了在zeromq和rabbitmq等消息队列系统中如何处理队列堆积问题。zeromq直接支持限制队列长度的功能,而rabbitmq则通过设置x-expires参数来实现伪自动删除队列的效果,以此解决因队列过度堆积导致的服务崩溃问题。
1万+

被折叠的 条评论
为什么被折叠?



