这里先介绍一下 rabbitmq 用到的包的 路径
下载erlang支持包:http://www.erlang.org/download.html
下载rabbitmq server:http://www.rabbitmq.com/releases/rabbitmq-server/
下载RabbitMQ client:http://www.rabbitmq.com/releases/rabbitmq-java-client/或者在http://www.rabbitmq.com/java-client.html
说道测试呢 , 我先简单介绍一下, 我是在 linux 虚拟机上进行测试的, 说道linux 很多新手 会觉着 很头疼, 一大堆的命令,的确如此,不过谁都有第一次,加油各位
言归正传 步骤如下
1、首先在 linux 服务器上 需要 配置 erlang 和 rabbitmq 环境 , 我上面的文章已经讲述了,大家可以看一看
2、在本地myeclipse中 创建两个类
1)
package com.abin.test; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.QueueingConsumer; public class Recv { //消息队列名称 private final static String QUEUE_NAME="hello"; public static void main(String[] args) throws java.io.IOException,java.lang.InterruptedException{ //创建链接工厂 ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); //创建链接 Connection connection = factory.newConnection(); //创建消息信道 Channel channel = connection.createChannel(); //生命消息队列 channel.queueDeclare(QUEUE_NAME,false,false,false,null); System.out.println("[*] Waiting for message. To exist 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+"'"); } } }2)
package com.abin.test; 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 java.io.IOException{ //创建链接工程 ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); //创建链接 Connection connection = factory.newConnection(); //创建消息通道 Channel channel = connection.createChannel(); //生命一个消息队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); String message = "Hello World"; //发布消息,第一个参数表示路由(Exchange名称),未""则表示使用默认消息路由 channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); System.out.println(" [x] Sent '"+message+"'"); //关闭消息通道和链接 channel.close(); connection.close(); } }
下载RabbitMQ client:http://www.rabbitmq.com/releases/rabbitmq-java-client/或者在http://www.rabbitmq.com/java-client.html
下载玩 这个 rabbitmq-java-client-bin-3.0.4.zip 这个包之后 解压, 把 包中的 所有包 都 解压到项目中,你会发现XX没了。
好的 我们继续
这时候我们需要将 本地的 项目 传到linux虚拟机上, 我们先到myeclipse的根目录中找到 bin 路径(里面都是class文件) 然后把bin打成 后缀名为zip的包
然后我们传到 虚拟机上 命令如下: rz -y
好的比如我们传到了 /user/local 这个目录下了,然后我们解压这个zip文件 命令如下:unzip bin.zip OKzip文件解压完毕
然后我们在到 myeclipse根目录中找到 我们导入的包(也就是让你们下载 client中的包) , 最好创建个文件夹,我这里叫lib,同样上传到linux虚拟机上路径也是/user/local
好的 完事具备 只欠东风 , 我们怎么运行呢? 我们需要 自己写个脚本去运行
脚本如下 注视已经写好 , 你们因该可以看懂
#!/bin/sh LIBS_DIR=项目所用包的地址/lib //这里的项目所用包的地址是 项目所用到的包 , 通常我们放到lib中 , for i in $LIBS_DIR/*.jar do CLASSPATH=$i:"$CLASSPATH" done SERVER=项目地址 //这里的项目地址是 你将bin文件放入 linux服务器中的地址 cd $SERVER/bin //这里的 bin 意思是 绑定到了 bin这个文件夹下, 也就是说你把myeclipse工程中的bin文件夹复制到服务器上就可以了,里面是class类 java -Xms512m -Xmx1024m -classpath $CLASSPATH com.abin.test.Send //这里的com.abin.test.Send是 包的名字 也就是 java类中 package com.abin.test; ,然后这里的Send表示类的名字,我们先运行Send类在运行Recv类, 会发现 队列 被 输出
运行顺序 先运行 Send 在 运行 Recv