windows环境下搭建rabbitMQ开发环境
1.下载与安装
erlang
rabbitmq 是使用erlang语言开发的,所以需要erlang环境;
rabbitmq
下载之后直接安装即可;
2.启动
开始 -> RabbitMQ Server -> RabbitMQ Service - start
3.java client 测试
maven依赖
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.5.1</version>
</dependency>
消息发送者
public class Sender {
public static void main(String[] argv) throws Exception {
// ConnectionFactory
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(MQParams.SERVER_HOST);
factory.setPort(MQParams.SERVER_PORT);
// try-with-resources statement
try (Connection connection = factory.newConnection();
Channel channel = connection.createChannel()) {
// 信道
channel.queueDeclare(MQParams.QUEUE_NAME_HELLO, false, false, false, null);
// To Send
String message = "你好 RabbitMQ , timestamp:" + System.currentTimeMillis();
channel.basicPublish("", MQParams.QUEUE_NAME_HELLO, null, message.getBytes("UTF-8"));
System.out.println(" [x] Sent '" + message + "'");
}
}
}
消息消费者
public class Consumer {
public static void main(String[] argv) throws Exception {
// ConnectionFactory
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(MQParams.SERVER_HOST);
factory.setPort(MQParams.SERVER_PORT);
// 连接
Connection connection = factory.newConnection();
// 信道
Channel channel = connection.createChannel();
channel.queueDeclare(MQParams.QUEUE_NAME_HELLO, false, false, false, null);
System.out.println(" [*] Waiting for messages. 消费者");
// DeliverCallback
DeliverCallback deliverCallback = (consumerTag, delivery) -> {
String message = new String(delivery.getBody(), "UTF-8");
System.out.println("consumerTag:" + consumerTag);
System.out.println(" [x] Received '" + message + "'");
};
// CancelCallback
CancelCallback cancelCallback = consumerTag -> {
System.out.println("cancelCallback consumerTag:" + consumerTag);
};
// 订阅消息
channel.basicConsume(MQParams.QUEUE_NAME_HELLO, true, deliverCallback, cancelCallback);
}
}
MQParams.java
public class MQParams {
public final static String SERVER_HOST = "localhost";
public final static Integer SERVER_PORT = 5672;
public final static String QUEUE_NAME_HELLO = "hello";
public final static String QUEUE_NAME_DURABLE = "queue_durable";
}
4.后台web控制台
启动后台web
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.9\sbin>rabbitmq-plugins.bat enable rabbitmq_management
重启服务
用户名:guest 密码:guest