1. 程式人生 > >java rabbitMQ demo

java rabbitMQ demo

 rabbitMQ是一個在AMQP基礎上完整的,可服用的企業訊息系統。他遵循Mozilla Public License 開源協議。

 rabbitmq是一個消費的代理;通過生產者客戶端生產一個資訊,轉送給消費者客戶端;在這個傳輸過程中,根據你的需要可以經過路由、緩衝、持久化來得到這個訊息。

  先通過一個例子開始:通過rabbitmq輸出"Hello World!"

其中P代表生產者、C表示消費者、中間紅色部分代表訊息佇列

生產者客戶端的傳送訊息程式如下:

Java程式碼  收藏程式碼
  1. package com.abin.test;  
  2. import java.io.IOException;  
  3. import com.rabbitmq.client.Channel;  
  4. import com.rabbitmq.client.Connection;  
  5. import com.rabbitmq.client.ConnectionFactory;  
  6. public class Send {  
  7.     private final static String QUEUE_NAME = "hello";  
  8.     public static void main(String[] args) throws IOException {  
  9.         ConnectionFactory factory = new
     ConnectionFactory();  
  10.         factory.setHost("localhost");  
  11.         Connection connection = factory.newConnection();  
  12.         Channel channel = connection.createChannel();  
  13.         channel.queueDeclare(QUEUE_NAME, falsefalsefalsenull);  
  14.         String message = "Hello World!";  
  15.         channel.basicPublish(""
    , QUEUE_NAME, null, message.getBytes());  
  16.         System.out.println(" [x] Sent '" + message + "'");  
  17.         channel.close();  
  18.         connection.close();  
  19.     }  
  20. }  

執行結果如下:

Java程式碼  收藏程式碼
  1. [x] Sent 'Hello World!'  

消費者客戶端接收訊息程式如下:

Java程式碼  收藏程式碼
  1. package com.abin.test;  
  2. import com.rabbitmq.client.Channel;  
  3. import com.rabbitmq.client.Connection;  
  4. import com.rabbitmq.client.ConnectionFactory;  
  5. import com.rabbitmq.client.QueueingConsumer;  
  6. public class Reqv {  
  7.     private final static String QUEUE_NAME = "hello";  
  8.     public static void main(String[] argv) throws Exception {  
  9.         ConnectionFactory factory = new ConnectionFactory();  
  10.         factory.setHost("localhost");  
  11.         Connection connection = factory.newConnection();  
  12.         Channel channel = connection.createChannel();  
  13.         channel.queueDeclare(QUEUE_NAME, falsefalsefalsenull);  
  14.         System.out.println(" [*] Waiting for messages. To exit press CTRL+C");  
  15.         QueueingConsumer consumer = new QueueingConsumer(channel);  
  16.         channel.basicConsume(QUEUE_NAME, true, consumer);  
  17.         while (true) {  
  18.             QueueingConsumer.Delivery delivery = consumer.nextDelivery();  
  19.             String message = new String(delivery.getBody());  
  20.             System.out.println(" [x] Received '" + message + "'");  
  21.         }  
  22.     }  
  23. }  

 執行程式得到的結果如下:

Java程式碼  收藏程式碼
  1. [*] Waiting for messages. To exit press CTRL+C  
  2. [x] Received 'Hello World!'  

 如果消費者出現“[x] Received 'Hello World!'”說明已接收到此訊息資訊。

相關推薦

java rabbitMQ demo

 rabbitMQ是一個在AMQP基礎上完整的,可服用的企業訊息系統。他遵循Mozilla Public License 開源協議。  rabbitmq是一個消費的代理;通過生產者客戶端生產一個資訊,轉送給消費者客戶端;在這個傳輸過程中,根據你的需要可以經過路由、緩衝

JAVA EE Demo[購物商城 Strust2]

orm asc comm rep 一個 導航欄 apt filter nbsp 為了搞定作業,我開始了J2EE的Strust2框架實現一個簡單的商城Demo 先創建Java Web Service項目。添加JDBC驅動,導入Strust2框架得到這個:

.net 使用RabbitMQ demo

rec 客戶端 object mar 其他 AI 消費者 str multipl 一、環境搭建就不重復了 上面有 二、在.NET中使用RabbitMQ需要下載RabbitMQ的客戶端程序集,可以到 官網下載 下載解壓後就可以得到RabbitMQ.Client.dll,這就是

PHP 使用 Rabbitmq Demo

訂閱者 change password server rect ++ direct 類型 127.0.0.1 一、發布消息類(client.php),發布者 <?php $conn = [ ‘host‘ => ‘127.0.0.1‘, ‘por

java -jar demo.jar

部署springboot專案 生成jar包其實還是依賴springboot的jar才能跑起來,為什麼呢?   1.在C盤手工建立了一個資料夾,是拷貝了demo.jar這個jar包執行是報錯的。 2.在D:\software\ideaIU-2017.3.5\workplace\demo\o

java rabbitmq ack訊息確認機制

ackage com.example.demo.ConsumerDemo; import com.rabbitmq.client.Channel; import org.springframework.amqp.core.Message; import org.springframewo

selenium+java入門demo

看到這裡,我就不介紹太多的selenium是什麼了(jar包:https://download.csdn.net/download/qq_40374604/10807974) 需要的jar包和常見問題在個人分類的其他文章中 demo中有phantomjs,無瀏覽器訪問,相關文章請看個人部

javademo---員工管理系統

最近開始自學java,在學到ArrayList的時候做了個員工管理系統來熟悉ArrayList的一部分操作。 此係統有5個功能: 1.新增員工:輸入員工編號,姓名,薪水 2.查詢員工:輸入員工編號進行查詢,如果找到員工就會顯示其資訊,否則給出沒找到的提示。 3.修改員

求倆圓交叉部分面積 java實現demo

import static java.lang.StrictMath.acos; import static java.lang.StrictMath.sin; /** * @author sun * @date 2018/1/31 14:41 */ public class Demo {

Java基礎Demo -- NIO讀檔案

NIO: 通道 read write 緩衝區 put get 字符集 選擇器 Path介面 Files工具類 BasicFileAttributes檔案屬性類 /* * NIO:不是替代IO,是對IO的一種補充,可以更精細的管控流和訪問檔案系統

Java基礎Demo -- 基本型別轉換位元組流

基本型別轉換為位元組流 位元組流轉換回基本型別  注意理解: 0xff &0xff java移位僅支援int或long >>帶符號右移(負數高位補1,正數高位補0),相當於除以2的n次方 >>>無符號右移(高位補0) <

微信公眾號Java接入demo

微信公眾號Java接入demo 前不久買了一臺服務,本來是用來當梯子用的,後來買了一個域名搭了一個部落格網站,後來不怎麼在上面寫部落格一直閒著,最近申請了一個微信公眾號就想著弄點什麼玩玩。週末沒事就鼓搗了下微信公眾號的接入。準備工作 一臺能用域名訪問的伺服器 一個微信公眾號 給伺服器裝上jdk、tomc

mongoDB和java互動demo

下載mongoDB的java驅動包  https://mongodb.github.io/mongo-java-driver/ 查詢資料庫中的文件: //連線資料庫服務 Mongo mongo = new Mongo("localhost",27017); //連線資料庫

Java基礎Demo -- enum列舉

列舉的小示例: 更簡單的對列舉的一種認識:我們自己寫了個類,這個類裡面有資料成員,方法成員。不過我們不用new來例項化這個類,而是enum定義的時候,就定義好了幾個列舉值常量,每個常量都是這個類的物件,而且是public static final修飾的物件。每個物件呢,有自己的資料成員私有副本,

Java基礎Demo -- 泛型上界的示例

<T extends SuperClass> 泛型上界的定義 <? extends SuperClass> 有界萬用字元的運用 普通泛型方法的運用 靜態泛型方法的運用 class Grandpa { private int x,y; public Gran

Java基礎Demo -- 泛型介面的示例

泛型介面 public interface MyInterface<T>{} 的簡單入門示例 /** * 類實現了一個泛型介面,並擴容下 */ interface AI<T> { void sss(T t); } class BI<T,K> imple

Java基礎Demo -- 泛型類的示例

泛型類 public class MyClass<T>{} 的簡單入門示例 /** * 泛型類 class MyClass<T>{} */ class MyGen<T> { private T t; public void setValue(T t){

Java基礎Demo -- IO 基本資料型別的讀寫

DataInputstream 和 DataOutputStream 的示例運用 import java.io.*; /** * 8種基本資料的寫入流,流讀出 * 這種應用場景為:原始的基本資料什麼順序寫入流的,就要什麼順序從流讀出 */ public class DataOIDemo {

Java基礎Demo -- IO 合成器示例

SequenceInputStream 合成器的運用 import java.io.*; import java.util.*; /** * 自定義的列舉類 支援元素FileInputStream,體現在nextElement()方法上 * 不要暈:類內的私有資料成員支援元素String,我們

Java基礎Demo -- IO 語法器示例

PushbackInputStream 語法器的運用 /** * 語法解析器:PushbackInputStream * 舉例1:解析語句"for(int i=0;i<10;i++)"中的for關鍵字,掃描到"for"是不是就可以說是個關鍵字了呢?不行,說不定後面是“for1”,那就是個變