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裏面以及有對應的交換機和隊列存在了就不用這樣做了。

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