You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JMX向ActiveMQ Artemis队列发送和移除消息?

通过JMX操作ActiveMQ Artemis队列的消息

ActiveMQ Artemis的JMX MBean结构和Classic完全不同,别再套用Classic的那套了,下面是具体的操作方法:

发送消息

你需要找到目标队列对应的MBean,路径格式为:
org.apache.activemq.artemis:broker=<你的Broker名称>,component=addresses,address=<队列所属地址名>,subcomponent=queues,routing-type=<路由类型(如ANYCAST/MULTICAST)>,queue=<队列名称>

找到该MBean后,调用它的sendMessage方法,参数可按需填写:

  • body:消息内容字符串
  • user/password:若Broker未开启认证,直接传null
  • deliveryDelay:延迟投递时间,填0表示立即投递
  • expiration:消息过期时间,填0表示永不过期
  • durable:是否持久化,一般填true
  • priority:消息优先级,范围0-9,默认填4即可
  • replyTo/correlationID/properties:不需要的话传null

比如最简调用:sendMessage("测试消息", null, null, 0, 0, true, 4, null, null, null),就能往队列发送一条基础消息。

移除消息

同样使用上述队列MBean,有两种常用操作:

  • 移除单条消息:调用removeMessage(String messageID),传入要删除的消息ID(可通过队列的listMessages方法获取消息列表及对应ID)
  • 清空整个队列:直接调用removeAllMessages(),执行后队列内所有消息都会被删除

注意:默认情况下Artemis的JMX是开启的,默认端口1099,用jconsole、jvisualvm这类工具即可连接操作。若你的Broker修改过JMX配置,对应调整连接参数即可。

内容的提问来源于stack exchange,提问作者user21680529

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 16:02:45