一、下载安装 Erlang/OTP
(安装的ERLang和RabbitMQ的路径最好不要出现中文)
下载 - Erlang/OTP
https://www.erlang.org/downloads
这里博主选择erlang的版本是Erlang/OTP 27.2.3
点击下载安装程序,这里如果觉得下载慢的可以复制下载链接,然后利用迅雷进行下载,具体操作步骤就是复制下载链接,然后粘贴在迅雷的搜索框里,回车就会弹出下载。
下载完后点击运行安装程序,无脑下一步,但是选择安装位置时可以选择D盘,这个按照自己想法修改即可
安装完成后需要进行系统环境变量设置,变量名:ERLANG_HOME 变量值为安装的地址
然后再在系统变量的Path里新建 然后输入%ERLANG_HOME%\bin
点击确认后,Win+R 输入cmd
如果是这样说明erl环境已经安装成功了
二、安装部署RabbitMQ
Installing on Windows | RabbitMQhttps://www.rabbitmq.com/docs/install-windows#downloads
进入链接后下滑找到这个rabbit-server-4.0.6,点击下载,这里如果下载也慢也可以复制到迅雷上进行下载
这里博主选择的版本是RabbitMQ 4.0.6,对了要注意对应版本
这里也是一路next,注意下安装路径,根据自己需求选择路径地址
安装完成后去到安装的位置,这是我的安装位置:D:\rabbitMQ\rabbitmq_server-4.0.6\sbin
在输入框内输入cmd
进入到控制台输入
rabbitmq-plugins enable rabbitmq_management
这里如果是上面图片这种情况的,最后控制台输出Plugin configuration unchanged
在和sbin文件夹同级目录下创建data文件夹
创建好后打开这个RabbitMQ Command Prompt 此时是以管理员身份操作
然后下依次输入后并执行以下命令:
rabbitmq-service.bat remove
这里路径还是选择自己的路径
set RABBITMQ_BASE=D:\rabbitMQ\rabbitmq_server-4.0.6\data
rabbitmq-service.bat install
然后再次执行命令:
rabbitmq-plugins enable rabbitmq_management
最后启动rabbitmq
rabbitmq-server.bat start
用浏览器访问:http://localhost:15672/
账号:guest
密码:guest
这里我们尝试写个java代码来测试rabbitmq是否正常运行,先运行生产者
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class PublisherTest {
@Test
public void testSendMessage() throws IOException, TimeoutException {
//1. 建立连接
ConnectionFactory factory = new ConnectionFactory();
//1.1 设置连接参数分别是:主机地址、端口号、虚拟机名称、用户名、密码
factory.setHost("127.0.0.1");
factory.setPort(5672);
factory.setVirtualHost("/");
factory.setUsername("guest");
factory.setPassword("guest");
//1.2 建立连接
Connection connection = factory.newConnection();
//2. 建立通道
Channel channel = connection.createChannel();
//3. 创建队列
String queueName = "simple.queue";
channel.queueDeclare(queueName, false, false, false, null);
//4. 发送消息
String message = "Hello World!";
channel.basicPublish("", queueName, null, message.getBytes());
System.out.println("发送消息成功:【"+ message+ "】。");
//5. 释放资源
channel.close();
connection.close();
}
}
再运行消费者
import com.rabbitmq.client.*;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class ConsumerTest {
@Test
public void testConsumer ()throws IOException, TimeoutException {
//1. 建立连接
ConnectionFactory factory = new ConnectionFactory();
//1.1 设置连接参数分别是:主机地址、端口号、虚拟机名称、用户名、密码
factory.setHost("127.0.0.1");
factory.setPort(5672);
factory.setVirtualHost("/");
factory.setUsername("guest");
factory.setPassword("guest");
//1.2 创建连接 Connection
Connection connection = factory.newConnection();
//2. 创建通道 Channel
Channel channel = connection.createChannel();
//3. 创建队列 Queue
String queueName = "simple.queue";
channel.queueDeclare(queueName, false, false, false, null);
//4.订阅消息
channel.basicConsume(queueName,true,new DefaultConsumer(channel){
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
String msg = new String(body, "UTF-8");
System.out.println("收到消息:" + msg);
}
});
System.out.println("等待接收消息");
}
}
运行完生产者时
现在可以看到消息队列里有一条消息
内容是
然后启动消费者获取这条消息,可以看到消息队列中已经没有内容了
整个安装部署过程和测试过程已经完成了,若是哪还有问题可以在评论区指出,感谢大家观看