在windows上安装RabbitMQ

来源:互联网 发布:域名别名是什么意思 编辑:程序博客网 时间:2024/05/27 09:47

      Rabbit是一个在AMQP协议标准基础上完善的,可用于企业消息系统。他遵循Mozilla Public License开源协议。

采用Erlang实现的工业级的消息队列(消息)服务器。官网地址:点击打开链接


1、下载安装

由于采用Erlang服务器,所以首先要去下载:http://www.erlang.org/download.html ,下载即可,注意自己系统

版本,由于我系统是64位,所有下载了:otp_win64_19.1.exe 并安装。

      

2、配置环境变量

在本系统环境变量中增加一个变量:ERLANG_HOME ,配置为:E:\RabbitMQ\erl8.1


3、下载RabbitMQ

本机测试下载了2.8.1,即:点击打开链接


4、解压安装

解压后,找到sbin目录,运行其中的rabbitmq-server.bat,启动RabbitMQ服务器。由于RabbitMQ是用AMQP协议,

而客户端支持多种语言(Java、.net、C/C++,Erlang.....)。下面,我用java来写一个Hello World,来测试RabbitMQ

安装是否success。


5、下载RabbitMQ版的java客户端

下载地址: 点击打开链接。本机是rabbitmq-java-client-bin-3.6.5,解压后将里面的jar 包copy到我们的java工程中。


6、写代码

项目结构:



Receive.java

import java.io.IOException;import java.util.concurrent.TimeoutException;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import com.rabbitmq.client.ConsumerCancelledException;import com.rabbitmq.client.QueueingConsumer;import com.rabbitmq.client.ShutdownSignalException;public class Receive {private final static String QUEUE_NAME = "hello";public static void main(String[] args) throws IOException,InterruptedException {try {ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");Connection connection;connection = factory.newConnection();Channel channel = connection.createChannel();channel.queueDeclare(QUEUE_NAME, false, false, false, null);System.out.println(" [*] Waiting for messages. To exit press CTRL+C");QueueingConsumer consumer = new QueueingConsumer(channel);channel.basicConsume(QUEUE_NAME, true, consumer);while (true) {QueueingConsumer.Delivery delivery = consumer.nextDelivery();String message = new String(delivery.getBody());System.out.println(" [x] Received '" + message + "'");}} catch (TimeoutException e) {e.printStackTrace();}}}

Send.java

import java.io.IOException;import java.util.concurrent.TimeoutException;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;public class Send {private final static String QUEUE_NAME = "hello";public static void main(String[] args) throws IOException {try{ConnectionFactory factory = new ConnectionFactory();factory.setHost("localhost");Connection connection;connection = factory.newConnection();Channel channel = connection.createChannel();channel.queueDeclare(QUEUE_NAME, false, false, false, null);String message = "cao 没有";channel.basicPublish("", QUEUE_NAME, null, message.getBytes());System.out.println(" [x] Sent '" + message + "'");channel.close();connection.close();}catch (TimeoutException e){e.printStackTrace();}}}



7、测试

先运行Receive,再运行Send两次,看看消费者是否接受到了2条消息,表明RabbitMQ的环境success。

8、RabbitMQ自带监控

      1.   cmd进入sbin目录,输入rabbitmq-plugins enable rabbitmq_management 启动监控管理,然后

            重启RabbitMQ服务。

      2.   浏览器打开:http://localhost:55672,用户名和密码都是guest。

      3.    关掉Receive,再次运行Send,然后点击管理页面的Queue。


             点击hello进入,并点击Get Message,可以看到Hello World信息的确已经传到RabbitMQ服务了。

     

        java测试代码:

   

0 0
原创粉丝点击