zoukankan      html  css  js  c++  java
  • Window10 系统 RabbitMQ的安装和简单使用

    Window10 系统 RabbitMQ的安装和简单使用


    1、下载 & 安装 Erlang

    因为RabbitMQ的服务端是基于 Erlang编写的,所以,首先需要安装Erlang。

    1)下载

    下载地址如下:

    https://www.erlang.org/downloads

    (此处下载比较慢,可以参考如下百度网盘)

    链接:https://pan.baidu.com/s/1oXq5QX3IlzRq5L-mk1gC4Q
    提取码:luna

    2)安装

    选择相应的安装目录,一路next即可

     

    3)配置环境变量

    在系统变量中新建变量

    变量名(N):ERLANG_HOME

    变量值(V):H:SW_installerl-24.1

    (注意:变量值需要根据自己的实际情况进行修改)

    ;%ERLANG_HOME%in 添加到Path变量值的最后

     

    4)验证环境变量配置的正确性

    echo %ERLANG_HOME%

    2、下载 & 安装 RabbitMQ

    1)下载

    下载地址如下:

    https://www.rabbitmq.com/install-windows.html#installer

    2)安装

    选择相应的安装目录,一路next即可

     

    3)配置环境变量

    在系统变量中新建变量

    变量名(N):RABBITMQ_SERVER

    变量值(V):H:SW_installRabbitMQ Server abbitmq_server-3.9.7

    (注意:变量值需要根据自己的实际情况进行修改)

    ;%RABBITMQ_SERVER%sbin 添加到Path变量值的最后

    4)验证环境变量配置的正确性

    echo %RABBITMQ_SERVER%

    5)安装 rabbitmq-plugins

    cmd命令打开命令行窗口,进入到rabbitmq的安装bin目录(我的是:H:SW_installRabbitMQ Server abbitmq_server-3.9.7sbin)

    执行如下命令,进行插件安装

    rabbitmq-plugins.bat enable rabbitmq_management

    如果此处报如下错误:

    ERLANG_HOME not set correctly

    在确认配置的环境变量没问题的情况下,从C:目录逐层到RabbitMQ的安装bin目录,再次执行插件安装,即可解决。

     

    6)启动 RabbitMQ 服务

    net start RabbitMQ

    或者在rabbitmq的sbin目录下,双击执行 rabbitmq-server.bat 文件。

     

    7)停止 RabbitMQ 服务

    net stop RabbitMQ

    8)查看服务状态

    rabbitmqctl status

    9)页面访问 RabbitMQ

    http://localhost:15672
    账号/密码:guest/guest

    登录后,页面如下:

    可以通过页面,添加新的用户(Admin--> Users--> Add a user --> Add user)

    3、RabbitMQ 的简单使用

    1)RabbitMQ 的 pom 引用

    <!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
    <dependency>
        <groupId>com.rabbitmq</groupId>
        <artifactId>amqp-client</artifactId>
        <version>5.13.1</version>
    </dependency>

    2)消息发送方

    package com.miracle.luna.rabbitmq;
    
    import com.rabbitmq.client.Channel;
    import com.rabbitmq.client.Connection;
    import com.rabbitmq.client.ConnectionFactory;
    
    import java.nio.charset.StandardCharsets;
    
    /**
     * @author Miracle Luna
     * @date 2021/10/19
     */
    public class SendMQ {
        private final static String QUEUE_NAME = "hello";
    
        public static void main(String[] args) throws Exception{
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost("localhost");
            factory.setPort(5672);
            factory.setUsername("guest");
            factory.setPassword("guest");
    
            final Connection connection = factory.newConnection();
            final Channel channel = connection.createChannel();
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
    
            String message = "Hello, RabbitMQ!";
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes(StandardCharsets.UTF_8));
            System.out.println("Send '" + message + "'");
    
            channel.close();
            connection.close();
        }
    }

    运行结果如下:

    Send 'Hello, RabbitMQ!'

    3)消息接收方

    package com.miracle.luna.rabbitmq;
    
    import com.rabbitmq.client.*;
    
    import java.io.IOException;
    import java.nio.charset.StandardCharsets;
    
    /**
     * @author Miracle Luna
     * @date 2021/10/19
     */
    public class RecvMQ {
        private final static String QUEUE_NAME = "hello";
    
        public static void main(String[] args) throws Exception{
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost("localhost");
            factory.setPort(5672);
            factory.setUsername("guest");
            factory.setPassword("guest");
    
            final Connection connection = factory.newConnection();
            final Channel channel = connection.createChannel();
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
    
            System.out.println("Waiting for messages...");
    
            Consumer consumer = new DefaultConsumer(channel) {
                @Override
                public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                    String message = new String(body, StandardCharsets.UTF_8);
                    System.out.println("Received '" + message + "'");
                }
            };
    
            channel.basicConsume(QUEUE_NAME, true, consumer);
        }
    }

    运行结果如下:

    Waiting for messages...
    Received 'Hello, RabbitMQ!'

    可以在Queues页签中,看到所有队列中的消息数量

     

    4、常用命令

    1)查看用户列表:rabbitmqctl list_users
    2)新增一个用户:rabbitmqctl add_user root password
    3)删除一个用户:rabbitmqctl delete_user test
    4)修改用户密码:rabbitmqctl change_password root 123456
    5)授予管理员角色:rabbitmqctl set_user_tags root administrator
    6)授予用户权限:rabbitmqctl set_permissions -p / root "." "." ".*"
    7)查看队列列表:rabbitmqctl list_queues
    8)删除一个队列:rabbitmqctl delete_queue test
    9)重置(如果忘记密码,可以进行应用重置,但是数据会丢失,慎用!!!):
         rabbitmqctl stop_app
         rabbitmqctl reset
         rabbitmqctl start_app

  • 相关阅读:
    汇编实验四
    汇编实验三
    C语言常用标准库函数
    实验一
    NGUI的缓动
    unity之Hashtable ArrayList List
    有关Unity 的一些 笔记之
    有关Unity 的一些 笔记之场景
    有关Unity 的一些 笔记之prefab
    有关Unity 的一些 笔记之消息事件
  • 原文地址:https://www.cnblogs.com/miracle-luna/p/15426463.html
Copyright © 2011-2022 走看看