听着从Java的话题消费者的ActiveMQ GET数(ActiveMQ get number of

2019-09-16 17:08发布

我希望能够让消费者听从Java的一个课题编号为嵌入式的ActiveMQ(5.4.2)在同一个JVM经纪人。 是真的JMX这里唯一的选择? JMX似乎是一个糟糕的选择,因为它可以任选被禁用。 这篇文章展示了如何使用JMX来获得连接列表: ActiveMQ的:通过JMX获取连接列表?

不过,由于它可能被禁用,我宁愿不基于JMX的解决方案。 我想JMX将是确定的,如果禁用时,它仍然从Java使用。 我只是熟悉的启用/禁用它与JConsole的使用。

我缺少API中的东西吗?

Answer 1:

您可以使用咨询信息来获得消费者的队列/主题(除其他事项外)的数量,而不使用JMX(见ActiveMQ.Advisory.Consumer.Topic等)...



Answer 2:

我认为,在统计插件的消费者数量应该给你你想要的东西。 而且我相当肯定的是,统计插件可以在嵌入式代理启用。

http://activemq.apache.org/statisticsplugin.html



Answer 3:

在嵌入式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


文章来源: ActiveMQ get number of consumers listening to a topic from java