JMS學習筆記6
2、解壓apache-activemq-5.5.0-bin.zip檔案到檔案系統(比如D:\ActiveMQ-5.5.0);
3、執行bin/activemq.bat指令碼即可啟動AMQ:
- INFO | ActiveMQ 5.5.0 JMS Message Broker (localhost) is starting
- ......
- INFO | Listening for connections at: tcp://SHI-AP33382A:61616
當看到上面的日誌輸出時,表示AMQ已經啟動了;
4、預設情況下,AMQ使用conf/activemq.xml作為配置檔案,我們可修改它,然後以 bin/activemq.bat xbean:./conf/my.xml啟動AMQ;
三、持久化訊息(MySQL)
1、建立MySQL資料庫:要使用MySQL儲存訊息,必須告訴AMQ資料來源:
- /**
- * 建立資料庫
- */
- CREATEDATABASE misc DEFAULT CHARSET=UTF8;
- /**
- * 建立使用者和授權
- */
- GRANTALLPRIVILEGESON misc.* TO'misc_root'@'%' IDENTIFIED BY'misc_root_pwd';
- GRANTALLPRIVILEGESON misc.* TO'misc_root'@'localhost' IDENTIFIED BY'misc_root_pwd';
通過上面的SQL指令碼,我們建立了名為misc的資料庫,並且把所有許可權都賦予了misc_root的使用者;
由於AMQ需要在本資料庫中建立資料表,因此使用者的許可權必須具有建表許可權,ActiveMQ是內建的建庫指令碼程式,所以,只需要正確的配置資料來源即可;
因為接下來我們修改AMQ的預設配置檔案,所以先備份conf/activemq.xml檔案;
2、新增MySQL資料來源:預設情況下,AMQ使用KahaDB儲存(我對KahaDB不瞭解),註釋到KahaDB的配置方式,改為MySQL的:
- <!--
- <persistenceAdapter>
- <kahaDBdirectory="${activemq.base}/data/kahadb"/>
- </persistenceAdapter>
- -->
- <persistenceAdapter>
-
<jdbcPersistenceAdapter data
- </persistenceAdapter>
該配置表示,我們將要使用一個叫做“MySQL-DS”的JDBC資料來源;
3、配置MySQL資料來源:在</broker>節點後面,增加MySQL資料來源配置:
- <!-- MySQL DataSource -->
- <beanid="MySQL-DS"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
- <propertyname="driverClassName"value="com.mysql.jdbc.Driver"/>
- <propertyname="url"value="jdbc:mysql://127.0.0.1:3308/misc?useUnicode=true&characterEncoding=UTF-8"/>
- <propertyname="username"value="misc_root"/>
- <propertyname="password"value="misc_root_pwd"/>
- <propertyname="poolPreparedStatements"value="true"/>
- <property name="maxActive" value="200"/>
- </bean>
其實這就是一個Spring的Bean的配置,注意id與上面的保持一致;
拷貝mysql 資料庫驅動mysql-connector-java-5.1.13-bin.jar和DBCP jar commons-dbcp-1.2.2.jar到activeMQ的classpath路徑下。。。
四、檢視MySQL資料表
重新啟動AMQ,啟動完成之後,我們發現,misc資料庫多了3張資料表:
- mysql> SHOW tables;
- +----------------+
- | Tables_in_misc |
- +----------------+
- | activemq_acks |
- | activemq_lock |
- | activemq_msgs |
- +----------------+
啟動的log 資訊如下
C:\Documents and Settings\johnson yang\Desktop\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\bin>activemq.bat
Java Runtime: Sun Microsystems Inc. 1.6.0_16 C:\Java\jdk1.6.0_16\jre
Heap sizes: current=5056k free=4635k max=520256k
JVM args: -Dcom.sun.management.jmxremote -Xmx512M -Dorg.apache.activemq.UseDedicatedTaskRunner=true -Djava.util.logging.config.file=logging.properties -
Dactivemq.classpath=C:\Documents and Settings\johnson yang\Desktop\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\bin\../conf;C:\Documents and Settings\joh
nson yang\Desktop\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\bin\../conf; -Dactivemq.home=C:\Documents and Settings\johnson yang\Desktop\apache-activem
q-5.5.0-bin\apache-activemq-5.5.0\bin\.. -Dactivemq.base=C:\Documents and Settings\johnson yang\Desktop\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\bin\
..
ACTIVEMQ_HOME: C:\Documents and Settings\johnson yang\Desktop\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\bin\..
ACTIVEMQ_BASE: C:\Documents and Settings\johnson yang\Desktop\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\bin\..
Loading message broker from: xbean:activemq.xml
INFO | Refreshing [email protected]: startup date [Tue Aug 02 15:18:45 CST 2011]; root of context hierarchy
WARN | destroyApplicationContextOnStop parameter is deprecated, please use shutdown hooks instead
INFO | PListStore:C:\Documents and Settings\johnson yang\Desktop\apache-activemq-5.5.0-bin\apache-activemq-5.5.0\bin\..\data\localhost\tmp_storage started
INFO | Using
Persistence Adapter: JDBCPersistenceAdapter(org.apache.commons.dbcp.BasicDataSource@10a5c21)
INFO | Database adapter driver override recognized for : [mysql-ab_jdbc_driver] - adapter: class
org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter
INFO | Database lock driver override not found for : [mysql-ab_jdbc_driver]. Will use default implementation.
INFO | Attempting to acquire the exclusive lock to become the Master broker
INFO | Becoming the master on dataSource: [email protected]
INFO | ActiveMQ 5.5.0 JMS Message Broker (localhost) is starting
INFO | For help or more information please see: http://activemq.apache.org/
INFO | Listening for connections at: tcp://sha-lri-pc-085:61618
INFO | Connector openwire Started
INFO | ActiveMQ JMS Message Broker (localhost, ID:sha-lri-pc-085-1402-1312269539231-0:1) started
INFO | jetty-7.1.6.v20100715
INFO | ActiveMQ WebConsole initialized.
INFO | Initializing Spring FrameworkServlet 'dispatcher'
INFO | ActiveMQ Console at http://0.0.0.0:8161/admin
INFO | Initializing Spring root WebApplicationContext
INFO | OSGi environment not detected.
INFO | Apache Camel 2.7.0 (CamelContext: camel) is starting
INFO | JMX enabled. Using ManagedManagementStrategy.
INFO | Found 5 packages with 16 @Converter classes to load
INFO | Loaded 152 type converters in 0.719 seconds
INFO | Connector vm://localhost Started
INFO | Route: route1 started and consuming from: Endpoint[activemq://example.A]
INFO | Total 1 routes, of which 1 is started.
INFO | Apache Camel 2.7.0 (CamelContext: camel) started in 2.422 seconds
INFO | Camel Console at http://0.0.0.0:8161/camel
INFO | ActiveMQ Web Demos at http://0.0.0.0:8161/demo
INFO | RESTful file access application at http://0.0.0.0:8161/fileserver
INFO | Started [email protected]:8161
資料表activemq_msgs即為持久化訊息表;
五、持久化訊息
系統啟動完畢之後,訊息表中內容為空:
- mysql> SELECT * FROM activemq_msgs;
- Empty set
- mysql> SELECT * FROM activemq_msgs;
- +----+-----------------+--------------------------------------------+-----------+------------+-----+----------+
- | ID | CONTAINER | MSGID_PROD | MSGID_SEQ | EXPIRATION | MSG | PRIORITY |
- +----+-----------------+--------------------------------------------+-----------+------------+-----+----------+
- | 1 | queue://FOO.BAR | ID:SHI-AP33382A-1486-1309840138441-2:2:1:1 | 1 | 0 | | 5 (優先順序是五,就是優先順序是高的。。實際生產中要重新設定)|
- +----+-----------------+--------------------------------------------+-----------+------------+-----+----------+
- mysql> SELECT * FROM activemq_msgs;
- Empty set
5、我們可以生產多條訊息,然後一條一條的消費,發現訊息表中的訊息一條一條的減少;
6、在傳送訊息頁面,“Destination Type”如果選擇“Topic”的話,則訊息表中並沒有資料,原因在於“Queue”為ptp模式訊息,“Topic”為釋出/訂閱模式訊息,當沒有訂閱者時,訊息直接丟掉了。
相關推薦
JMS學習筆記6
2、解壓apache-activemq-5.5.0-bin.zip檔案到檔案系統(比如D:\ActiveMQ-5.5.0); 3、執行bin/activemq.bat指令碼即可啟動AMQ: Java程式碼 INFO | ActiveMQ 5.5.0 JMS Message Broker (
ThinkPHP5學習筆記(6)請求和響應
thinkphp在線視頻課程:http://www.kancloud.cn/tpshop/thinkphp5/220692Request請求對象和Response響應對象$_GET、$_POST、$_REQUEST、$_COOKIE調用請求對象$request=Request::instance()$this
[javase學習筆記]-6.5 類類型參數與匿名對象
需要 public num trac article 我們 品牌 類類型 color 這一節我們來說說類類型參數和匿名對象. 我們繼續用之前的小汽車類吧 class Car { int num;//這是輪胎數屬性 String color;//這是顏色屬性
ESP8266學習筆記6:ESP8266規範wifi連接操作
.text n) 梳理 pri his tail 周期性 官方 esp 一、前言 我整理了從2015年至今關於ESP8266的學習筆記,梳理出來了開發環境、基礎功能、進階學習三大部分。方便自己和他人。可點此查看,歡迎交流。 之前在筆記4《ES
[javase學習筆記]-6.6 基本數據類型參數與引用數據類型參數的傳遞過程
img 兩個 數據類型 語句 hang .net 全部 pre 進棧 這一節基本數據類型參數和引用數據類型參數的傳遞過程。 數據類型參數和引用參數我們在前面章節中都已涉及到了,那麽我們來看看以下的兩段代碼: //基本數據類型參數傳遞 class Demo
java學習筆記(6)
brush 本質 運行 == scanner 私有 定義 bool 調用 java基礎知識: 1:形式參數和返回值的問題 (1)形式參數: 類名:需要該類的對象 抽象類名:需要該類的子類對象 接口名:需要該接口的實現類對象 (2)返回值類型: 類名:返
40、我的C#學習筆記6
c#表達式:表達式是由運算符和操作數組成的。運算符設置對操作數進行什麽樣的運算。例如:+、-、*、/都是運算符,操作數包括文本、常量、變量和表達式。運算符:運算符是一些特殊的符號,主要用於數學函數、一些類型的賦值語句和邏輯比較方面。C#中提供了豐富的運算符,如:算術運算符、賦值運算符、比較運算符等。算術運算符
《Unix&Linux大小教程》學習筆記6——Unix文件系統
文件類型 src pos strong ron 輸出 lin post 二進制文件 1:Unix文件類型——3種 普通文件(常規文件):文本文件(純文本、腳本、源程序、配置文件、html等)、二進制文件(多媒體文件、數據庫等) 目錄:用於組織文件 偽文件:不存儲數據,目的是
Java學習筆記6(循環和數組練習題)
rgs per spa 練習 折半查找法 選擇排序 d+ sele system 1.輸出100到1000的水仙花數: public class LoopTest{ public static void main(String[] args){ i
hibernate框架學習筆記6:事務
isolation -c blog 重復 .config rollback pre ont .com MySQL的事務、JDBC事務操作: 詳細見這篇文章:比較詳細 http://www.cnblogs.com/xuyiqing/p/8430214.html 如何在hi
struts2框架學習筆記6:攔截器
筆記 頁面 actions err tor 框架 map 異常 protect 攔截器是Struts2實現功能的核心部分 攔截器的創建: 第一種: package interceptor; import com.opensymphony.xwork2.ActionI
學習筆記(6)
學習筆記1.fgrep 不支持正則表達式搜索2.grep abc 接受標準輸入,表示可以接受管道來對輸出進行處理3.grep [file] file可有可無 可以沒有文件意味著接受標準輸入 Usage: grep [OPTION]... PATTERN [FILE]... Usage: cat [O
[javase學習筆記]-6.4 成員變量與局部變量
ava 包含成員 -m img 不同之處 棧內存 RM 代碼塊 pub 前面我們學習了類的定義,我們不難理解,定義類事實上就是在定義類中的成員. 成員包含成員變量和
設計模式:學習筆記(6)——抽象工廠模式
方法 組成 pat AR ID 指定 ride 抽象工廠模式 nds 設計模式:學習筆記(6)——抽象工廠模式 快速開始 介紹 抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創建其他工廠。該超級工廠又稱為其他工廠的工廠。這種類型的設計
Python+Selenium學習筆記6 - os模塊
瀏覽器 htm abs sel case 打開 結果 關於 導入 os模塊是關於文件/目錄方面的 導入語法 import os 相關方法 path.abspath() 用來獲取當前路徑下的文件 os.path.abspath(‘checkbox.html‘)
Linux學習筆記6月1日任務
onf 告警系統需求分析 grep images AC shell中的 alt tle process 20.16/20.17 shell中的函數$1為第一個參數的值;$2為第二個參數的值;$0為腳本名;$#為參數個數;獲取主機IP地址命令,#ifconfig | grep
Linux學習筆記6月4日任務
系統 TP space TE AR linux學習 editor proc 項目 20.20 告警系統主腳本20.21 告警系統配置文件20.22 告警系統監控項目Linux學習筆記6月4日任務
Linux學習筆記6月5日任務
space Edito theme ces src efault linux學習筆記 TE -o 20.23/20.24/20.25 告警系統郵件引擎20.26 運行告警系統#cd /usr/local/sbin/mon/bin#sh main.shLinux學習筆記6月5
Linux學習筆記6月8日任務
.html linux學習 In 擴展 ML ID 學習 http 復習 復習shell腳本擴展:給你提供一本電子書 鏈接:http://pan.baidu.com/s/1mg49Taw 密碼:yk4bshell習題做一下 http://www.apelearn.com/s
node學習筆記6——自定義模塊
例子 學習筆記 log 2個 模塊 而且 nodejs 說明 分享 自定義模塊三大關鍵詞: require——引入模塊; exports——單個輸出; module——批量輸出。 從例子下手: 1.創建module.js: exports.a=22; exports.