RabbitMQ/JAVA 客戶端連接測試


這里是一個簡單的helloworld測試。

這里在eclipse平台中實現 

細節不再贅述。重點是導入rabbitmq-java-client的jar包 下載地址:http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.1.5/rabbitmq-java-client-bin-3.1.5.zip

將里面的jar包全部導入工程中。如下:

 

接下來先看生產者的代碼:

package rabbitmq;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
public class Send {
     private final static String QUEUE_NAME = "hello";
      public static void main(String[] args) throws java.io.IOException {  
            /** 
             * 創建連接連接到MabbitMQ 
             */  
            ConnectionFactory factory = new ConnectionFactory();  
            // 設置MabbitMQ所在主機ip或者主機名  
            factory.setHost("123.206.216.31");  
            factory.setPort(5672);
            factory.setUsername("admin");
            factory.setPassword("admin");
            // 創建一個連接  
            Connection connection = factory.newConnection();  
            // 創建一個頻道  
            Channel channel = connection.createChannel();  
            // 指定一個隊列  
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);  
            // 發送的消息  
            String message = "hello world!";  
            // 往隊列中發出一條消息  
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());  
            System.out.println(" [x] Sent '" + message + "'");  
            // 關閉頻道和連接  
            channel.close();  
            connection.close();  
        }  

}

 消費者的代碼:

package rabbitmq;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;

import java.io.IOException;

import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Consumer;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;
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  {
        
        // TODO Auto-generated method stub
         ConnectionFactory factory = new ConnectionFactory();  
            factory.setHost("123.206.216.31");  
            factory.setPort(5672);
            factory.setUsername("admin");
            factory.setPassword("admin");
            // 打開連接和創建頻道,與發送端一樣  
            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 + "'");  
            }  

    }

}

不是一次性通過的。端口號搞錯了。應該是5672 寫成了15672。

為什么寫成15672是因為我在web登錄時用的是這個端口號。后來經過百度得到

默認安裝的Rabbit MQ 監聽端口是5672  下面是官網查到的:

 

當然也會有其他類型的錯誤,用戶權限在rabbitmq安裝的時候沒有配置好。注意一下

最后貼一下運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM