情况一

报错信息

reply-code=404, reply-text=NOT_FOUND - no exchange

原因

只启动Provider,然后发送消息到队列,如果没有创建交换机(RabbitMQ中原来没有对应交换机),就会报错

解决办法

有两种解决办法:

①先启动Consumer,会自动创建RabbitMQ配置类中的交换机和队列,然后启动Provider发送消息到队列即可

②先启动了Provider,但是先不要发送消息,启动Consumer后再发送消息到队列

情况二

报错信息

reply-code=404, reply-text=NOT_FOUND - no queue

原因

RabbitMQ配置类没有生效

解决办法

在Consumer启动类添加注解@ComponentScan,我的配置类在 com.ledao.common.config 目录下,扫描的范围如下:(下面两种方式都行)

1
2
3
4
//扫描到上三级目录,范围更大
@ComponentScan(basePackages = "com")
//扫描到上两级目录
@ComponentScan(basePackages = "com.ledao")