发布测试消息到JMS队列的工具?

23

有人能推荐一个快速发布测试消息到JMS队列的工具吗?

描述:

  1. 该工具应允许用户输入一些数据,例如XML负载,然后将其提交到队列。
  2. 我应该能够在没有生产者的情况下测试消费者。

JMSToolBox:http://sourceforge.net/projects/jmstoolbox/ - titou10
12个回答

19

这个答案并不适用于所有JMS代理,但是如果您正在使用Apache ActiveMQ,则Web管理控制台(默认位于http://localhost:8161/admin)允许您手动将文本消息发送到主题或队列。它很方便用于调试。


你能否分享一些关于如何使用控制台添加JMS属性的信息?我可以添加消息正文但无法添加头部。 - bschandramohan
我刚刚遇到了一些问题。我需要传入26条消息,但有6条由于某种原因被拒绝了。 - mvw
我有同样的问题:为了调试目的而发送带有自定义标头的消息。显然,这个问题很常见,但是没有答案。 - Giuseppe Adaldo

13

HermesJMS 似乎是与 JMS 提供程序交互的强大客户端。但在我看来,它相当不直观且难以设置。(至少我大部分时间都失败了...)

其他更加用户友好的客户端通常是特定于供应商的。 Sonic Message Manager 是一个非常好用且易于使用的开源 JMS 客户端,适用于SonicMQ。希望能有一个像这样的客户端适用于不同的提供程序。


SonicMQ提供了一个JMS测试客户端,可以连接到任何启用了JMS的服务器。不过我不知道它是否作为免费下载提供。 - Vincent Robert

11

ActiveMQ的基于Web的管理控制台有一个很大的缺陷——在发布消息时无法指定任何标头/自定义属性。

我发现了一个很棒的FOSS工具,可以发布消息并指定标头/属性:

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

希望这有所帮助。


6

Apache JMeter 是一款基于 Java 平台的工具,可以实现以下功能:

  • 向队列发送消息(点对点)

  • 发布/订阅主题

  • 发送持久和非持久性消息

  • 发送文本、映射和对象消息

Apache ActiveMQ 包括一个 ProducerTool 和 ConsumerTool 示例源码(Java),具有许多命令行配置选项。由于它基于 JMS API,因此使用它与其他消息代理应该很容易进行微小修改。


我知道已经很久了。我正在使用的Jmeter为每个线程创建一个新的连接工厂(根据线程池选项中给定的线程数)。我该如何确保它只使用一个qConnectionFactory并在整个过程中重复使用它们? - Chillax

4

IBM提供了一个免费、强大的命令行工具perfharneess

虽然它旨在对JMS提供商进行基准测试,但它非常擅长生成(和消费)测试消息。您可以使用随机生成的数据或从文件中获取数据。

其强大功能包括以固定速率发送和消费消息、使用特定数量的线程、使用JMS或本地MQ等。它会生成统计信息,告诉您队列的性能有多快(因此得名)。

唯一的缺点是,鉴于它支持的操作数量,它不是非常直观。


3
我建议采用@Will的方法,使用ActiveMQ Web控制台,它可以让您轻松地发布消息、浏览队列或删除消息。

我经常使用另一种方法,即使用文件目录作为样本数据,并使用Camel路由将消息从目录移动到JMS队列 - 或从队列中获取它们并保存到磁盘等

例如:

from("file://someDirectory").
  to("activemq:MyQueue");

这将移动someDirectory中的所有文件并将它们发送到名为MyQueue的ActiveMQ队列。如果您希望保留文件,请使用URI“file://someDirectory?noop=true”。
了解更多详细信息,请参见:
- Camel中的file endpoint - 从文件到JMS的示例Camel路由 - Camel支持的各种企业集成模式

2

如果JMS代理支持像ActiveMQ那样的JMX,则可以使用JConsole发布消息并执行更多操作。


1
ActiveMQ有一个Web控制台, 可以发送测试消息(如上所述),但如果您的供应商没有这个功能,最简单的方法可能是编写控制台应用程序/网页来发布测试消息。在JMS中发送消息并不太难,您可能只需要编写自己的测试客户端即可获得最大的收益。
如果您可以在Java中使用Spring,它有一些非常强大的实用工具,请查看JmsTemplate

0
我已经建立了一个GUI工具,用于管理开源的JMS服务器(目前支持Activemq和Hornetq)。它可以发送和接收消息以及大部分常规功能,还可以将队列和主题聚合成逻辑“组”。
这是一个商业产品,但BETA版本是免费的,并且是完全功能性的。
请访问http://www.rockeyesoftware.com/试用。

0
在ActiveMQ中,示例目录包含脚本。对于Ruby程序员,请查看example/ruby/stompcat.rb和catstomp.rb以进行订阅和发布。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接