`
iyuan
  • 浏览: 463275 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

rabbitmq 队列长度预设的曲线方案

    博客分类:
  • MQ
阅读更多
zeromq中倒是直接支持这个功能的。

类似于设定队列长度或大小,超过多少条数据(或多大数据size)即不接纳新的数据或者是丢弃最
旧的数据。

rabbitmq中没有这个设置,单从应用的角度出发,新的机制中出现了一个曲线式的方案,通过设定 x-expires 参数实现伪auto-delete功能:在设定时间内没有消费者,则队列自动删除。如此也算间接解决了:队列过于堆积导致服务崩溃的问题。

由于用了kombu框架,如此这般:
Queue(qname, exchange, routing_key=key,queue_arguments={'x-expires':100000})#这里的单位是微秒,1000=1s


如果有兄台知道真正实现QueueSize or length的预设方案,望不吝赐教~

(仅作备忘)
0
2
分享到:
评论
1 楼 kobe1029 2014-04-23  
Map<String, Object> args = new HashMap<String, Object>();

args.put("x-max-length", 10);

channel.queueDeclare("myqueue", false, false, false, args);

相关推荐

Global site tag (gtag.js) - Google Analytics