ActiveMQ Artemis 2.x如何通过Jolokia获取Topic所有订阅
ActiveMQ Artemis 2.x 版本通过Jolokia获取Topic所有订阅的方案
Artemis 2.x 重构了管理API体系,原有1.x版本提供的TopicControl接口已被废弃,订阅查询能力已整合到核心层的AddressControl组件中,你可以按照以下方式构造请求:
1. 基础请求格式
.../jolokia/exec/org.apache.activemq.artemis:broker="<你的broker名称>",component=addresses,address="<Topic对应的地址名>",subcomponent=address-control/listAllSubscriptions()
参数说明:
<你的broker名称>:替换为你实际的broker实例名,和broker.xml中配置的name属性一致<Topic对应的地址名>:默认和你创建的Topic名称一致,若你开启了JMS前缀配置,需要加上对应前缀,比如开启默认JMS前缀时,名称为userEvent的Topic对应的地址名为jms.topic.userEvent
2. 常用扩展方法
你可以根据需求替换请求末尾的方法名,实现更精准的查询:
- 查询所有持久订阅:使用
listDurableSubscriptions()方法 - 查询所有非持久订阅:使用
listNonDurableSubscriptions()方法 - 查询指定客户端ID的订阅:使用
listSubscriptionsForClient("<客户端ID>")方法,示例如下:
.../jolokia/exec/org.apache.activemq.artemis:broker="broker",component=addresses,address="userEvent",subcomponent=address-control/listSubscriptionsForClient("test-client-001")
返回结果说明
接口会返回订阅信息数组,每个元素包含订阅ID、客户端ID、过滤规则、持久化标记、未消费消息数、关联连接信息等核心字段。
内容的提问来源于stack exchange,提问作者st.
相关产品推荐
相关产品推荐

