RabbitMQ小坑
在学习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");