rabbitmq 是使用erlang语言开发的,因此须要erlang环境;html
下载地址java
下载地址web
rabbitmq与erlang版本关系windows
下载以后直接安装便可;maven
开始 -> RabbitMQ Server -> RabbitMQ Service - start测试
maven依赖code
<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.5.1</version> </dependency>
消息发送者server
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 + "'"); } } }
消息消费者htm
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.javarabbitmq
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"; }
启动后台web
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.9\sbin>rabbitmq-plugins.bat enable rabbitmq_management
重启服务
用户名:guest 密码:guest