您好,欢迎来到年旅网。
搜索
您的当前位置:首页RabbitMQ队列没有生成或者队列生成但是与交换机没有绑定成功解决办法

RabbitMQ队列没有生成或者队列生成但是与交换机没有绑定成功解决办法

来源:年旅网

1.首先新建两个交换机(x-test,x-textdead)
2.然后新建三条队列(testone,testtwo,testthree)
程序正常启动,队列跟交换机也正常建立,并且绑定关系正常。

3.然后在到shovel建立一条testone的shovel。可以明显的看到testone会有一个消费者在等待消费。而这个消费者,就是shovel为这个队列自动创建的。
这个时候我们将所有队列删除,shovel会自动创建一条名字为testone消费的队列。但是属性会与xml当中配置的textone不一样。

4.这个时候我们重启服务,除了shovel自动建立的testone队列外,其他队列都没有正常建立,并且之前建立的两个交换机也没有出现任何绑定关系

5.将shovel删除,由shovel建立的队列testone也删除,再次重启服务,队列正常建立并且与交换机的绑定关系正常。

总结: 整个流程给大家捋了一遍,其实就是因为之前建立的队列可能由于某种原因删除了,但是队列又绑定了shovel,所以在启动服务时,同一条队列,xml配置的属性与由shovel自动建立时配置的属性发生冲突,从而导致了其他队列建立失败,队列建立失败,绑定关系也自然不会绑定了(当然这里说的冲突也不一定是队列属性的冲突,也有可能是交换机或者其他的)。

这里还有一个需要注意的点,配置在队列的ignore-declaration-exceptions属性,当这个属性声明为true时,在生成队列时,如果发生冲突,会使用已经建立好的队列,并且把冲突信息给吞掉,有可能就会导致在日志看不到异常信息,定位不到问题。

总结的可能不是特别到位,程序员小生还在努力当中,看了我的描述希望能给大家带来一点帮助,嘿嘿

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务