rabbitmq僵尸队列

1)故障现象

云平台各种操作变慢

2)故障原因

一个组件突然断掉,当期再次加入集群中时 ,不是复用原先的队列,而是创建新的队列。而原来的队列依然绑定在exchange上,这样,从exchange 路由过来的消息依然会发送到老队列上,老队列上没有“consumer”与之对应,导致消息队列的堆积。

3)故障解决

一个cinder-scheduler 进程对应一个cinder-scheduler_fanout_{uuid}队列。我们现有两个api 节点,含有两个cinder-scheduler进程,对应两个cinder-scheduler_fanout_{uuid}队列,如下所示,含有三个队列,说明有一个僵尸队列。(一般是堆积消息的队列为僵尸队列)

[root@VM1~ ]$ rabbitmqctl list_queues |grep cinder-scheduler 

cinder-scheduler 0

cinder-scheduler.cinder 0 

cinder-scheduler_fanout_5720c0511f654740bb639de7282a3ed0 43 

cinder-scheduler_fanout_89ec88c1f9ce404089d17e68250505bb 0 

cinder-scheduler_fanout_ee07d2cb126c4378b99bf11007aa879b 0

查询队列对应的consume,注意uuid。

[root@VM1 ~ ]$ rabbitmqctl list_consumers |grep cinder-scheduler_fanout_ 

cinder-scheduler_fanout_89ec88c1f9ce404089d17e68250505bb <rabbit@server-44.3.8145.28> 3 true 0 [] 

cinder-scheduler_fanout_ee07d2cb126c4378b99bf11007aa879b <rabbit@server-45.2.16539.60> 3 true 0 []

结果发现队列cinder-scheduler_fanout_5720c0511f654740bb639de7282a3ed0没有对应的consumer。故确定为僵尸队列

处理方法是直接删除该队列即可

rabbitmqadmin delete queue name='cinder-scheduler_fanout_89ec88c1f9ce404089d17e68250505bb 0'


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值