【发布时间】:2020-12-20 06:53:23
【问题描述】:
我目前正在将 Spring Boot 2.x 应用程序从 ActiveMQ 5.x 迁移到 Artemis,但我遇到了 Artemis activemq.notifications 和 activemq.management 的问题。
在 ActiveMQ 5 中,我使用了ActiveMQ.Advisory.Connection 主题来查看当前是否连接了具有特定 clientId 的客户端。连接到这个主题时,我首先收到了所有当前连接的客户端,然后通过ConnectionInfo 和RemovedInfo 通知客户端是离线还是在线。
很遗憾,Artemis 不支持这种行为。收听activemq.notifications 仅提供有关在收听该主题时创建的会话或关闭的会话的信息。
所以现在我需要在我的应用启动时同步连接的客户端。
我尝试使用 JMS 管理 API 访问 ActiveMQServerControl.listConnectionIDs(),但是
org.apache.activemq.artemis.core.server.management.impl.ManagementServiceImpl.getAttribute() 方法只允许访问以get 或is 开头的方法。
有没有其他方法可以获取所需信息(无需轮询)?
【问题讨论】:
标签: jms activemq-artemis