1. 程式人生 > >activeMq Windows環境部署及例項開發

activeMq Windows環境部署及例項開發

ActiveMQ 是Apache出品,最流行的,能力強勁的開源訊息匯流排。ActiveMQ 是一個完全支援JMS1.1(Java訊息服務)和J2EE 1.4規範的 JMS Provider實現。

1、ActiveMQ下載

有windows和linux兩個版本的,分為32和64位,具體按需求下載
2、解壓、測試連線
將下載的安裝包【apache-activemq-5.8.0-bin.zip】解壓,有如下目錄:
這裡寫圖片描述

進入bin目錄,雙擊執行【activemq.bat】檔案,出現如下介面,說明服務已啟動
這裡寫圖片描述

通過點選選單欄Queues進入佇列管理介面,可建立一個佇列
這裡寫圖片描述

(1)Number Of Pending Messages 等待消費的訊息 這個是當前未出佇列的數量。可以理解為總接收數-總出佇列數
(2)Number Of Consumers 消費者 這個是消費者端的消費者數量
(3)Messages Enqueued 進入佇列的訊息 進入佇列的總數量,包括出佇列的。 這個數量只增不減
(4)Messages Dequeued 出了佇列的訊息 可以理解為是消費這消費掉的數量

3、在eclipse中配置activeMq
建立Java project
這裡寫圖片描述

所需mq jar包在解壓目錄的lib中匯入專案即可,建立兩java類,一個訊息傳送方,一個接受方。
【訊息傳送發】:

import java.util.Random;        
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
importorg.apache.activemq.ActiveMQConnectionFactory;

public class SendMessage {  
    private static final String url = "tcp://localhost:61616";  
    private static final String QUEUE_NAME = "bfp_mq";  

    public void sendMessage() throws JMSException {  
   // JMS 客戶端到JMSProvider 的連線  
   Connection connection = null;  
   try {  
       // 連線工廠,JMS 用它建立連線  
       // 構造ConnectionFactory例項物件,此處採用ActiveMq的實現jar  
       ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);  
       connection = (Connection)connectionFactory.createConnection();  
       // 啟動連線  
       connection.start();  
       //Session:傳送或接收訊息的執行緒  
       // 獲取session  
       Session session = (Session) connection.createSession(false,  
              Session.AUTO_ACKNOWLEDGE);  
       // 訊息的目的地,訊息傳送到那個佇列  
       Destination destination = session.createQueue(QUEUE_NAME);  
       //MessageProducer:訊息傳送者(生產者)  
       // 建立訊息傳送者  
       MessageProducer producer =session.createProducer(destination);  
       // 設定是否持久化  
       //DeliveryMode.NON_PERSISTENT:不持久化  
       //DeliveryMode.PERSISTENT:持久化  
       producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);  

       String msg = "";  
       int i = 0;  
    do {  
        msg = "第"+i + "次傳送的訊息:"+new Random();  
            TextMessage message = session.createTextMessage(msg);  
            Thread.sleep(1000);  
            // 傳送訊息到目的地方  
           producer.send(message);  
            System.out.println("傳送訊息:" +msg);  
            i++;  
    } while (i<1000);  
   } catch (Exception e) {  
       e.printStackTrace();  
   }  
}  

public static void main(String[] args) {  
   SendMessage sndMsg = new SendMessage();  
   try {  
       sndMsg.sendMessage();  
   } catch (Exception ex) {  
       System.out.println(ex.toString());  
   }  
}  

}

【訊息消費方】:

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

/** 
 * 訊息接收類 
 * 
 * @createTime:Apr 7, 2013 5:11:11 PM 
 * @author:<a href="mailto:
[email protected]
">迷蝶</a> * @version:0.1 *@lastVersion: 0.1 * @updateTime: *@updateAuthor: <a href="mailto:[email protected]">迷蝶</a> * @changesSum: * */ public class ReceiveMessage { private static final String url = "tcp://localhost:61616"; private static final String QUEUE_NAME = "bfp_mq"; public void receiveMessage() { Connection connection = null; try{ try{ ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( url); connection= connectionFactory.createConnection(); }catch (Exception e) { System.out.println(e.toString()); } connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue(QUEUE_NAME); //訊息接收者,也就是消費者 MessageConsumer consumer = session.createConsumer(destination); consumeMessagesAndClose(connection,session, consumer); }catch (Exception e) { System.out.println(e.toString()); } } /** * 接收和關閉訊息,如遇到訊息內容為close則,關閉連線 * * @param connection JMS 客戶端到JMSProvider 的連線 * @param session 傳送或接收訊息的執行緒 * @param consumer 訊息接收物件 * @throws JMSException * @auther <ahref="mailto:[email protected]">迷蝶</a> * Apr 8, 2013 10:31:55 AM */ protected void consumeMessagesAndClose(Connection connection, Session session, MessageConsumer consumer) throws JMSException { do{ Message message = consumer.receive(1000); if("close".equals(message)){ consumer.close(); session.close(); connection.close(); } if(message != null) { onMessage(message); } }while (true); } public void onMessage(Message message) { try{ if(message instanceof TextMessage) { TextMessage txtMsg = (TextMessage) message; String msg = txtMsg.getText(); System.out.println("Received:" + msg); } }catch (Exception e) { e.printStackTrace(); } } public static void main(String args[]) { ReceiveMessage rm = new ReceiveMessage(); rm.receiveMessage(); }

}

可執行程式碼,在訊息管理介面檢視待發送、進入佇列、出佇列的訊息以及消費者個數。

相關推薦

activeMq Windows環境部署例項開發

ActiveMQ 是Apache出品,最流行的,能力強勁的開源訊息匯流排。ActiveMQ 是一個完全支援JMS1.1(Java訊息服務)和J2EE 1.4規範的 JMS Provider實現。 1、ActiveMQ下載 有windows和linux兩

ELKB5.2.2集群環境部署優化終極文檔

kibana5.2.2 elasticsearch5.2.2 elk5.2.2 elkb5.2.2.2 ELKB5.2.2集群環境部署本人陸陸續續接觸了ELK的1.4,2.0,2.4,5.0,5.2版本,可以說前面使用當中一直沒有太多感觸,最近使用5.2才慢慢有了點感覺,可見認知事務的艱難,本

LINUX下Mysql環境部署問題解決

tab 登錄 修改 遠程連接 p地址 過程 ID 出現 xxxx 連接mysql用戶: mysql -u root -p 回車,輸入密碼 創建數據庫:create database 【數據庫名稱】 復制數據:navicat傳輸數據功能 過程中出現的問題:1、打開表,報10

網站流量歐卡國際源碼出售數據采集環境部署實現

parent script now() welcom cat stop Opens 創建 conn 一、原理歐卡國際源碼出售論壇:haozbbs.com Q1446595067分析與設計實現       二、系統環境部署     !!!執行復制下列命令是註意查看是否為英文類

windows環境下搭建Java開發環境(一):jdk安裝和配置

變量 win jns jdk安裝 分享 tool 直接 www. 技術 一、資源下載   官網:http://www.oracle.com/technetwork/java/javase/downloads/index.html   本人安裝的是jdk1.8,百度雲資源:鏈

android入門學習教程—環境部署安裝

更多知識-程式猿:apeit 我安裝的android studio是2.0的版本。 android的開發工具有用Eclipse的,有用android studio。android studio優勢比較明顯,現在大多數都是用android studio,所以下面我們講講android st

Kylin OLAP 綜合解決方案環境部署雙引擎切換實踐-Spark商業應用實戰

本套技術專欄是作者(秦凱新)平時工作的總結和昇華,通過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和叢集環境容量規劃等內容,請持續關注本套部落格。版權宣告:禁止轉載,歡迎學習。QQ郵箱地址:[email protected],如有任何商業交流,可隨時聯絡。

Hyperledger Fabric 環境部署e2e_cli執行測試

一、軟體下載與安裝        1、Oracle VM VirtualBox 是一款虛擬機器軟體。(官網下載地址https://www.virtualbox.org/wiki/Downloads)       &nb

kafka使用筆記-基於SASL認證的kafka偽叢集windows環境搭建測試

繼 基於SASL認證的kafka偽叢集linux環境搭建及測試 之後,由於環境的問題,需要在windows平臺搭建同樣的一個基於sasl認證的kakfa偽叢集環境。本次同樣使用的是 kafka_2.10-0.10.1.0.tgz 版本的kafka,整合zookeeper。只需要對此進行配

python3+Robot Framework+PyCharm環境部署執行指令碼

obot Framework是一個非常優秀的開源關鍵字驅動自動化測試框架,目前已經支援python2和python3,但是GUI介面RIDE只支援python2,但是python的未來是python3,關於python3的RIDE當前只有一個開發版本,筆者沒有用過,聽說不太穩定,這裡不做過多介紹,感興趣可以自

Redis叢集架構環境搭建jedis開發

1、下載redis 2、安裝redis 上傳安裝檔案到伺服器的/usr/local目錄下 解壓tar –zxvf redis-4.0.9.tar.gz 進入redis目錄,cd redis-4.0.9安裝:make && make install

區塊鏈研究-星際檔案系統IPFS之Windows環境安裝使用入門

      add指令會將剛才的根目錄下的所有檔案加入到網路中,並為訪問三個目錄生成了不同的多重雜湊節點ID addedQmXnA3jtjcthBbgrkx8eeJX9YrvFT7BRJVxvhvkpKGEUPk fileTest/test/README.md addedQmZiBRkXJVvunKhxaUD

如何在Windows環境下進行jni開發--NDK環境配置

ndk程式設計(native developer kit),關於jni(java native interface)這方面的使用,其實早在2014年的時候,就研究過這方面的知識,只是當時工作上用不到所以就沒對這方面進行一個彙總! 近期由於個人維護Android平

ctrip-apollo windows環境部署

1、下載原始碼 2、建立資料庫,所有的表等,github都有準備   參考連結:https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E

Intellij IDEA開發環境配置實際開發應用

           軟體開發隨著時代的進步也在不斷的進步,並且隨著技術的不斷更新,智慧化逐漸成為軟體開發的主流。智慧開發的前提就是智慧化的開發工具,整所謂上陣打仗,任你武功再好也不敵一槍打死,所以工具很重要,現在主流的開發工具很多,但是為了使團隊便於管理與協調,我們往往會

spagobi系列文章-01 環境部署部分漢化

商務智慧套件SpagoBI提供一個基於J2EE的框架用於管理BI物件如報表、OLAP分析、儀表盤、記分卡以及資料探勘模型等。它提供的BI管理器能 夠控制、校驗、驗證與分發這些BI物件。 SpagoBI特性包括支援Portal、report、OLAP、QbE、ETL、dashboard、文件管理、元資料管理、

kettle-windows環境部署

1.java環境kettle環境需要jdk1.8,操作步驟是執行jdk-8**-windows-x64.exe安裝包,安裝教程自行搜尋,然後在計算機-屬性-高階系統設定-環境變數,使用者變數中新增JAVA_HOME=java安裝路徑(bin目錄的上一目錄,切記),系統變數中p

windows環境下的Android開發環境配置

 第二步:右擊“我的電腦”屬性,選擇“高階”選項卡,單擊“環境變數”,第三步:假設JDK的安裝路徑:E:\jdk        在使用者變數中新增下面的變數和屬性值    Classpath    .;E:\jdk\lib\tools.jar; E:\jdk\lib\dt.j

windows環境下python web開發環境安裝配置

花了一天時間,終於完成了winxp下Apache+Mysql+Python+Django的安裝。步驟如下:一,軟體下載 1,http://www.apache.org/dist/httpd/modpython/win/3.3.1/下載mod_python-3.3.1.win32-py2.5-Apache2.

monkeyrunner環境搭建例項教程

目錄 Monkeyrunner工具提供了一個API,使用此API寫出的程式可以在Android程式碼之外控制Android裝置和模擬器。 一Monkeyrunner簡介 1.MOnkeyrunner相對Monkey區別 1)Monkeyru