提问者:小点点

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


我找不到任何关于如何通过JMX向ActiveMQ Artemis队列发送和减去消息的留档

我尝试通过ActiveMQ“Classic”中的相同MBean,但这些MBean不打算在ActiveMQ Artemis中使用


共1个答案

匿名用户

您可以在留档中找到有关ActiveMQ Artemis管理API的一般信息。要了解有关各种可用管理操作的更多信息,请参阅这些接口的Javadoc。它们位于org.apache.activemq.artemis.api.core.management包中,并在末尾以单词Control命名(例如ServerControlQueueControl等)。

要将消息发送到队列,您可以在QueueControl上使用sendMessage()操作,也可以在相应的AddressControl上使用相同的操作,消息将根据配置的路由类型路由到地址上的队列。

“减去”我假设你的意思是删除,你可以通过几个不同的操作来做到这一点:

  • RemoveMessage(long)-删除与指定消息ID对应的消息。需要明确的是,此消息ID是内部ID,而不是JMSMessageID。如果您正在浏览消息,就像我们在本问题中讨论的那样,您可以通过查看“MessageID”值(即CompositeData常量#MESSAGE_ID)获得此ID
  • RemoveMessage(String)-删除与指定过滤器对应的所有消息。使用null或空过滤器将从此队列中删除所有消息。