RabbitMQ消费者端报错,找不到Exchange
在学习RabbitMQ的Exchange时报错:
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no exchange DirectConsumer01 in vhost /, class-id=40, method-id=30)
源码:
//获取一个信道 Channel channel = RabbitMQUtils.getChannel(); //信道上的交换机设置 channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.DIRECT); //信道上的队列设置 channel.queueDeclare(QUEUE_NAME, false, false, false, null); //绑定信道和交换机——报错就是因为这里出错,方法应该是queueBind()才正确 channel.exchangeBind(QUEUE_NAME,EXCHANGE_NAME, "key1");
修改后代码:
//获取一个信道 Channel channel = RabbitMQUtils.getChannel(); //信道上的交换机设置 channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.DIRECT); //信道上的队列设置 channel.queueDeclare(QUEUE_NAME, false, false, false, null); //绑定信道和交换机 channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "key1");