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