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