首先我们执行一个生产者程序后看见队列状态中,有一个ready有一个total
然后我们创建一个新的类之后执行main
import com.rabbitmq.client.*;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class Consumer {
public static void main(String[] args) throws IOException, TimeoutException {
//创建mq的连接工厂对象
ConnectionFactory connectionFactory = new ConnectionFactory();
//设置连接rabbitmq的主机
connectionFactory.setHost("127.0.0.1");
//设置端口号
connectionFactory.setPort(5672);
//设置连接哪个虚拟主机
connectionFactory.setVirtualHost("/ems");
//设置访问虚拟主机的用户名和密码
connectionFactory.setUsername("ems");
connectionFactory.setPassword("ems");
//获取连接对象
Connection connection = connectionFactory.newConnection();
//获取连接中通道
Channel channel=connection.createChannel();
//绑定通道对象
channel.queueDeclare("hello",false,false,false,null);
//消费消息
//参数1:消费哪个队列的消息 队列名称
//参数2:开启消息的自动确认机制
//参数3:消费消息时的回调接口
channel.basicConsume("hello",true,new DefaultConsumer(channel){
@Override//最后一个参数,消息队列中取出的消息
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
System.out.println("new String(body)="+new String(body));
}
});
// channel.close();
// connection.close();
}
}
看到控制台以及读出了消息队列中的消息
并且在web管理界面中也能看出消息以及被消费了