AMQ学习笔记 - 20. 使用Apache ActiveMQBrowser监控ActiveMQ
2024-10-19 16:34:30
概述
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:
echo off
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个地方需要注意:
- broker配置属性useJmx="true"
<broker xmlns="http://activemq.apache.org/schema/core"
brokerName="amq1-broker" supportFailOver="true" useJmx="true"
destroyApplicationContextOnStop="true">
.....
</broker> - 配置managementContext[2]
<managementContext>
<managementContext createConnector="true"
connectorPort="1099" />
</managementContext>这里的connectorPort就是JMX的监听端口。
- 配置transportConnectors[3]
<transportConnectors>
<transportConnector name="default"
uri="tcp://localhost:57015" />
</transportConnectors>这里的uri,就是connection的监听地址。
注:
[1] 在公司的框架中,这个文件放在resources/META-INF下。
[2] 我曾经尝试把监听端口配置在properties文件,在activemq引入properties文件,但是没能解析成功。
[3] 在公司的框架中,实际内容是
<transportConnectors>
<transportConnector name="default"
uri="tcp://${activemq.listenaddress}" />
</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。
最新文章
- Java优先队列
- 使用struts通配符报错
- JAVA浅析字节流与字符流
- supersr--NSURLConnection iOS2.0苹果原生请求
- 把DataTable中的数据拼接成XML时遇到的问题
- 关于配置服务器(IIS7)
- Android dip(dp) 与 sp的自适应问题
- 《深入Java虚拟机学习笔记》- 第12章 整数运算
- Android开发_SharedPreferences
- 原生Js获取某个节点后面的第一个标签
- 让XP系统支持GPT硬盘
- Canvas入门(3):图像处理和渲染文本
- CentOS根分区占满
- TP 3.2 笔记 (1)
- Java:配置环境(Mac)——JDK
- vue项目打包笔记
- Python内置函数(68)——__import__
- 【Java】「深入理解Java虚拟机」学习笔记(2)- JVM内存区域
- ATDD
- mybatis--Mapper 常见报错总结(持续总结)