RabbitMQ安装(windows)
1:安装 Erlang 语言
RabbitMQ 是由 Erlang语言编写的,所以,在安装RabbitMQ 之前需要安装 Erlang。
下载地址:https://www.erlang.org/downloads
下载完成之后,点击安装即可。
安装完成后,我们需要配置简单的环境变量。
变量名:ERLANG_HOME
变量值:C:\Program Files\erl-23.0
(请填写您实际安装的文件路径)
新建 path 变量:%ERLANG_HOME%\bin
目录文件如图,如果你的文件夹中没有 bin 文件夹,建议卸载重装。
打开 cmd 控制台,输入 erl
显示版本信息,表示安装成功。
2:安装 RabbitMQ
下载地址:https://www.rabbitmq.com/install-windows.html
下载完成后,点击安装即可。
安装完成后,进入 RabbitMQ 安装目录的 sbin
目录下
启用管理插件包
输入:rabbitmq-plugins enable rabbitmq_management
插件激活后,打开 web 浏览器,输入 localhost:15672
访问管理 UI.
默认账号:guest
默认密码:guest
3:入门教程:Hello World
引入 RabbitMQ 依赖( Maven 方式)
<!-- RabbitMQ 依赖 -->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
</dependency>
3.1:发送消息
创建类并命名队列:
public class Test {
private final static String QUEUE_NAME = "hello";
public static void main(String[] args) {
...
}
}
创建到服务器的连接:
ConnectionFactory connectionFactory = new ConnectionFactory();
//如果我们想连接到另一台计算机上的代理,则只需在此处指定其名称或IP地址。
connectionFactory.setHost("localhost");
try(Connection connection = connectionFactory.newConnection();
Channel channel = connection.createChannel();
) {
...
} catch (TimeoutException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
发送:
channel.queueDeclare(QUEUE_NAME,false,false,false,null);
String message = "Hello World";
channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
System.out.println(" 发送消息: "+message);
3.2:接收消息
public class Test2 {
// 与发送消息发布到的队列匹配
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
//如果我们想连接到另一台计算机上的代理,则只需在此处指定其名称或IP地址。
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
DeliverCallback deliverCallback = (consumerTag, delivery) -> {
String message = new String(delivery.getBody(), "UTF-8");
System.out.println(" 接收到消息: '" + message + "'");
};
channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println(" 等待接收消息,退出请输入 CTRL+C");
}
}