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_install\erl-24.1
注意:变量值需要根据自己的实际情况进行修改
将 ;%ERLANG_HOME%\bin 添加到 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_install\RabbitMQ Server\rabbitmq_server-3.9.7
注意:变量值需要根据自己的实际情况进行修改
将 ;%RABBITMQ_SERVER%\sbin 添加到 Path 变量值的最后。
4)验证环境变量配置的正确性
echo %RABBITMQ_SERVER%
5)安装 rabbitmq-plugins
cmd命令打开命令行窗口,进入到rabbitmq的安装bin目录(我的是:H:\SW_install\RabbitMQ Server\rabbitmq_server-3.9.7\sbin)
执行如下命令,进行插件安装:
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
登录后,页面如下:
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)消息发送方
packagecom.miracle.luna.rabbitmq;importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;importcom.rabbitmq.client.ConnectionFactory;importjava.nio.charset.StandardCharsets;/**
* @author Miracle Luna
* @date 2021/10/19
*/publicclassSendMQ{privatefinalstaticStringQUEUE_NAME="hello";publicstaticvoidmain(String[] args)throwsException{ConnectionFactory factory =newConnectionFactory();
factory.setHost("localhost");
factory.setPort(5672);
factory.setUsername("guest");
factory.setPassword("guest");finalConnection connection = factory.newConnection();finalChannel 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)消息接收方
packagecom.miracle.luna.rabbitmq;importcom.rabbitmq.client.*;importjava.io.IOException;importjava.nio.charset.StandardCharsets;/**
* @author Miracle Luna
* @date 2021/10/19
*/publicclassRecvMQ{privatefinalstaticStringQUEUE_NAME="hello";publicstaticvoidmain(String[] args)throwsException{ConnectionFactory factory =newConnectionFactory();
factory.setHost("localhost");
factory.setPort(5672);
factory.setUsername("guest");
factory.setPassword("guest");finalConnection connection = factory.newConnection();finalChannel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME,false,false,false,null);System.out.println("Waiting for messages...");Consumer consumer =newDefaultConsumer(channel){@OverridepublicvoidhandleDelivery(String consumerTag,Envelope envelope,AMQP.BasicProperties properties,byte[] body)throwsIOException{String message =newString(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
版权归原作者 龙凌云 所有, 如有侵权,请联系我们删除。