這裏先介紹一下 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+"'");
- }
- }
- }
- 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();
- }
- }
好的 , 你把 兩個類 放到 myeclipse中時 會報很多錯, 大家肯定知道 少包啊, 沒錯 這裏給大家提供路徑
下載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類, 會發現 隊列 被 輸出
然後 就運行腳本 , 命令如下 sh run.sh
運行順序 先運行 Send 在 運行 Recv