AMQ學習筆記 - 20. 使用Apache ActiveMQBrowser監控ActiveMQ


概述


Apache ActiveMQBrowser可以用於查看AMQ中的消息。這里對其使用方法進行簡單介紹。

使用介紹


1.下載並解壓縮

下載地址: Apache ActiveMQBrowser,當前最新的版本是ActiveMQBrowser_2.5.2.8ForJDK1.6。
解壓縮之后可以發現, ActiveMQBrowser很簡單,只有一級目錄,里面有幾個jar包、幾個txt文件、一個圖片文件、一個bat文件。

2.添加classpath

如果MQ中的消息是ObjectMessage類型,我們需要為 ActiveMQBrowser提供里面封裝的class;這樣,當使用 ActiveMQBrowser時,我們可以查看一個消息的內容。 ActiveMQBrowser調用對象的toString方法來展示消息內容,所以請考慮為類重寫toString方法。
假設 ActiveMQBrowser解壓縮的目錄是AMQB_HOME,在這個目錄下添加classes子目錄,並修改 AMQB_HOME下的run_activemq_browser.bat文件,將classes目錄加入classpath:
1 echo off
2 start "ActiveMQBrowser" javaw -Xms128m -Xmx512m -splash:cube.png -cp .\QBrowserV2_Neo.jar;.\activemq-web-5.6.0.jar;.\activemq-all-5.6.0.jar;.\jide-oss-2.6.2.jar;.\imq.jar;.\jms.jar;.\imqadmin_ja.jar;.\imqadmin.jar;.\imqutil_ja.jar;.\imqutil.jar;.\imqjmx.jar;.\imqjmx_ja.jar;.\classes com.qbrowser.ActiveMQBrowser

 

將class文件放入classes子目錄。

 
補充:
在producer-client,你可能使用 javax.jms.Session#createObjectMessage(java.io.Serializable object):ObjectMessage的方式來創建ObjectMessage實例,並發送到AMQ;這里傳入的參數object需要是一個可序列化的對象,就是將這個類對應的class文件,放到上述新建的classes目錄。

3.啟動ActiveMQBrowser

運行 AMQB_HOME下的run_activemq_browser.bat文件:
 
File - New Connection(Ctrl + W)
看來,我們需要為Connection提供一些參數,包括jmx的監聽地址、用戶名、密碼;connection的監聽地址、用戶名、密碼。到這里我們先放一放,轉去AMQ的配置。

4.AMQ配置

一般來說,AMQ的配置文件是activemq.xml [1],這個文件有3個地方需要注意:
  1. broker配置屬性useJmx="true"
    1 <broker xmlns="http://activemq.apache.org/schema/core"
    2         brokerName="amq1-broker" supportFailOver="true" useJmx="true"
    3         destroyApplicationContextOnStop="true">
    4     .....
    5 </broker>

     

  2. 配置managementContext[2]
    1 <managementContext>
    2     <managementContext createConnector="true"
    3         connectorPort="1099" />
    4 </managementContext>

    這里的connectorPort就是JMX的監聽端口。

  3. 配置transportConnectors[3]
    1 <transportConnectors>
    2     <transportConnector name="default"
    3         uri="tcp://localhost:57015" />
    4 </transportConnectors>

     

    這里的uri,就是connection的監聽地址。

 
注:
[1] 在公司的框架中,這個文件放在resources/META-INF下。
[2] 我曾經嘗試把監聽端口配置在properties文件,在activemq引入properties文件,但是沒能解析成功。
[3] 在公司的框架中,實際內容是
1 <transportConnectors>
2     <transportConnector name="default"
3         uri="tcp://${activemq.listenaddress}" />
4 </transportConnectors>

 

其中,activemq.listenaddress來自resources/spring-bean-config/activeMQ.properties文件

5.建立連接

現在我們回到ActiveMQBrowser界面,假設我們要監控的AMQ就在本機跑着,jmx、connection監聽地址中的ip部分就是localhost;分別修改監聽端口,根據我們查看AMQ的配置,jmx的端口是1099,connection的端口是57015。
關於用戶名和密碼:如果沒有配置就不用填寫,我沒有研究怎么去配置,如果你研究了,並且配置了,自然知道是什么。
點擊OK:
建立連接成功,並且我們可以看到有一個asj.log的queue,且里面有9條消息。

6.刷新和查看

如果有新的消息入隊,需要刷新才能看到。
Display - Refresh ... (Ctrl + R)
 
雙擊一條消息,可以查看其內容:
再次說明:消息的內容,是調用對象的toString方法獲得的結果。請確保class文件加入了 ActiveMQBrowser的classpath,否則會遇到 ClassNotFoundException。






免責聲明!

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



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