1.此处是在rabbitmq在本地安装成功的情况下的测试文档,rabbitmq的安装过程此处省略;在rabbitmq安装成功的情况下,rabbitmq的默认访问地址是:http://127.0.0.1:15672/ ;默认用户名:guest,密码:guest;此处注意:在代码中测试的用户不能使用默认账号(即:guest账号),需要你自己新建一个账号进行测试,新建账号方法如下图:图1,新增用户:填写用户名和密码,确认密码;点击图2:新增用户;如图3:my这个用户是新增的用户,注意新增的用户,在没有赋权限前,不能直接使用(黄色:no access);rabbitmq初步使用过程中应该注意的事项

2.当新建账号没有赋权限直接使用时,测试代会报链接被重置错误: java.net.SocketException: Connection reset,测试代码如下:

public static void main(String[] args) {
    //定义连接工厂
    ConnectionFactory factory = new ConnectionFactory();
    //此处填写mq的链接地址
    factory.setHost("172.16.140.*");
    //此处填写mq的访问端口(此处为默认端口,注:在浏览中的端口号是:15672,在代码中使用:5672,不能使用:15672)
    factory.setPort(5672);
    //设置vhost
    factory.setVirtualHost("/");
    //此处使用的是上面新建的用户名(注:代码中的默认用户guest不能直接使用,需要新建用户)
    factory.setUsername("my");
    //密码
    factory.setPassword("123456");
    //获取连接
    Connection connection;
    try {
        connection = factory.newConnection();
        //创建通道
        Channel channel = connection.createChannel();
        //声明创建队列
        channel.queueDeclare("QUEUE_NAME2",false,false,false,null);
        //消息内容
        String message = "Hello World!";
        channel.basicPublish("","QUEUE_NAME2",null,message.getBytes());
        System.out.println("发送消息:"+message);
        //关闭连接和通道
        channel.close();
        connection.close();

    } catch (Exception e) {
        e.printStackTrace();
    }
}

错误截图如下:

rabbitmq初步使用过程中应该注意的事项

3.给新建用户赋值权限,如下图:点击下图中的两个按钮

rabbitmq初步使用过程中应该注意的事项 

4.新用户赋值成功后的状态是如下图 :

rabbitmq初步使用过程中应该注意的事项

5.设置完成后,运行上面的代码进行简单的测试,上面的代码为mq消息的生产者,将指定信息“Hello World!”,放入mq中。图1,是运行结果;如下图,ready:1,total:1表示数据已经放入;可以看到消息已经在mq中了,点击queues菜单,可以看到“QUEUE_NAME2”(注:此处是在代码中声明的在mq中的唯一标识,在mq中不能重复)。

rabbitmq初步使用过程中应该注意的事项

rabbitmq初步使用过程中应该注意的事项

 6.mq的消费者代码如***:mq消息生产者,声明是:"QUEUE_NAME2",消息消费者中的声明必须与之相对应:"QUEUE_NAME2"

public static void main(String[] args) {
    //获取连接和通道
    Connection connection = null;
    try {
        //定义连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("172.16.140.*");
        factory.setPort(5672);
        //设置vhost
        factory.setVirtualHost("/");
        factory.setUsername("my");
        factory.setPassword("123456");
        connection = factory.newConnection();
            //创建通道
        Channel channel = connection.createChannel();
        //声明通道
        channel.queueDeclare("QUEUE_NAME2",false,false,false,null);
        //定义消费者
        QueueingConsumer consumer = new QueueingConsumer(channel);
        //监听队列
        channel.basicConsume("QUEUE_NAME2",true,consumer);
        while(true){
            //这个方法会阻塞住,直到获取到消息
            QueueingConsumer.Delivery delivery = consumer.nextDelivery();
            String message = new String(delivery.getBody());
            System.out.println("接收到消息:"+message);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

7.代码运行结果如下:此信息"Hello World!"是放入mq中的消息内容, 如图:ready:0;total:1;表明消息已经被消费;

rabbitmq初步使用过程中应该注意的事项

rabbitmq初步使用过程中应该注意的事项

相关文章: