我希望能够让消费者听从Java的一个课题编号为嵌入式的ActiveMQ(5.4.2)在同一个JVM经纪人。 是真的JMX这里唯一的选择? JMX似乎是一个糟糕的选择,因为它可以任选被禁用。 这篇文章展示了如何使用JMX来获得连接列表: ActiveMQ的:通过JMX获取连接列表?
不过,由于它可能被禁用,我宁愿不基于JMX的解决方案。 我想JMX将是确定的,如果禁用时,它仍然从Java使用。 我只是熟悉的启用/禁用它与JConsole的使用。
我缺少API中的东西吗?
我希望能够让消费者听从Java的一个课题编号为嵌入式的ActiveMQ(5.4.2)在同一个JVM经纪人。 是真的JMX这里唯一的选择? JMX似乎是一个糟糕的选择,因为它可以任选被禁用。 这篇文章展示了如何使用JMX来获得连接列表: ActiveMQ的:通过JMX获取连接列表?
不过,由于它可能被禁用,我宁愿不基于JMX的解决方案。 我想JMX将是确定的,如果禁用时,它仍然从Java使用。 我只是熟悉的启用/禁用它与JConsole的使用。
我缺少API中的东西吗?
您可以使用咨询信息来获得消费者的队列/主题(除其他事项外)的数量,而不使用JMX(见ActiveMQ.Advisory.Consumer.Topic等)...
我认为,在统计插件的消费者数量应该给你你想要的东西。 而且我相当肯定的是,统计插件可以在嵌入式代理启用。
http://activemq.apache.org/statisticsplugin.html
在嵌入式ActiveMQ的情况下,你可以使用的BrokerService,让消费者在题目数量。 代码是Scala,但不应该在的Java太大的差别。
import org.apache.activemq.broker.{BrokerService, TransportConnector}
val brokerService = new BrokerService()
brokerService.setBrokerName("localhost")
brokerService.setUseJmx(false)
val transportConnector: TransportConnector = brokerServiceSetup.addConnector(s"tcp://localhost:61616")
brokerService.start()
brokerService.getDestination(new ActiveMQTopic(topicName))
topic.getConsumers