rabbitmq启动消费者模块失败的原因及解决

org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[topic.man] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:700) [spring-rabbit-2.2.7.RELEASE.jar:2.2.7.RELEASE]
    at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.passiveDeclarations(BlockingQueueConsumer.java:584) [spring-rabbit-2.2.7.RELEASE.jar:2.2.7.RELEASE] 

 

在代码无误的情况下,生产者模块可以启动,而消费者模块启动报上述错误,原因是此时还未发起网址请求,如此就不会在rabbitmq服务器里面创建还不存在的交换机和队列。这个到rabbitmq上一看就知道了。

解决办法是先启动生产者模块,再发起访问url(该操作会让rabbitmq服务器上创建对应的交换机和队列),最后再启动消费者模块。

第一步:开启生产者模块

第二步: 发起对应的url访问

保险起见,去rabbitmq网页看看对应的交换机和队列创建没有

可见此时都已自动生成。

第三步:开启消费者模块

如此一来,该问题就解决了,但是这个操作仅限于第一次启动的时候,下次rabbitmq里面以及有对应的交换机和队列存在了就不用这样做了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章