【问题标题】:Can the contents of an AMQ topic be viewed somehow?是否可以通过某种方式查看 AMQ 主题的内容?
【发布时间】:2012-06-28 21:38:01
【问题描述】:

我正在尝试使用activemq-admin 查看主题的内容。

这就是我正在尝试的:

./activemq-admin browse --amqurl tcp://localhost:61616 my.topic

这是我得到的输出:

Java Runtime: Sun Microsystems Inc. 1.6.0_24 /usr/lib/jvm/java-6-sun-1.6.0.24/jre
Heap sizes: current=62848k  free=62190k  max=932096k
JVM args: -Dactivemq.classpath=/home/pc/dev/apache-activemq-5.3.1/conf; -Dactivemq.home=/home/pc/dev/apache-activemq-5.3.1 -Dactivemq.base=/home/pc/dev/apache-activemq-5.3.1
ACTIVEMQ_HOME: /home/pc/dev/apache-activemq-5.3.1
ACTIVEMQ_BASE: /home/pc/dev/apache-activemq-5.3.1

这不是我想要的。我想以某种方式以原始形式查看队列中的消息。这可能吗?

谢谢,

【问题讨论】:

标签: java jms activemq


【解决方案1】:

由于主题的性质,您无法浏览主题的内容。消息被发送进来,如果有任何订阅者,每个订阅者都会在那个时间点收到一条消息。消息通常不会保留(有一些与此处无关的例外情况)。

但是,有时出于调试目的,查看发送到主题的消息很有用。最简单的方法是设置一个virtual destination,它将发送到主题的每条消息复制到一个队列中。

<destinationInterceptors>
    <virtualDestinationInterceptor>
        <virtualDestinations>
            <compositeTopic name="events" forwardOnly="false">
                <forwardTo>
                    <queue physicalName="events.thatHaveHappened" />
                </forwardTo>
            </compositeTopic>
        </virtualDestinations>
    </virtualDestinationInterceptor>
</destinationInterceptors>

然后您可以通过 JMX 或 Web 控制台浏览队列。

【讨论】:

    【解决方案2】:

    此第三方工具可让您订阅主题并检查主题的消息:

    http://sourceforge.net/projects/activemqbrowser/

    连接到服务器,然后订阅你想要的主题。我可以查看消息详细信息和有效负载。

    【讨论】:

      【解决方案3】:

      您可以使用web console查看队列中的消息内容

      【讨论】:

      • 怎么样?我可以看到产生/消费的消息数量,但看不到确切的消息。
      • 您可以查看 http://:/admin/ 吗?然后导航到队列(在菜单中),单击其中一个队列名称,然后单击其中一条消息。请参阅上面添加的屏幕截图。
      • 哦,我现在看到你的其他评论了,抱歉。是的,我还可以看到队列的内容,但看不到主题(我需要主题)。谢谢。
      猜你喜欢
      • 2021-01-05
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多