有人能推荐一个快速发布测试消息到JMS队列的工具吗?
描述:
- 该工具应允许用户输入一些数据,例如XML负载,然后将其提交到队列。
- 我应该能够在没有生产者的情况下测试消费者。
这个答案并不适用于所有JMS代理,但是如果您正在使用Apache ActiveMQ,则Web管理控制台(默认位于http://localhost:8161/admin)允许您手动将文本消息发送到主题或队列。它很方便用于调试。
HermesJMS 似乎是与 JMS 提供程序交互的强大客户端。但在我看来,它相当不直观且难以设置。(至少我大部分时间都失败了...)
其他更加用户友好的客户端通常是特定于供应商的。 Sonic Message Manager 是一个非常好用且易于使用的开源 JMS 客户端,适用于SonicMQ。希望能有一个像这样的客户端适用于不同的提供程序。
ActiveMQ的基于Web的管理控制台有一个很大的缺陷——在发布消息时无法指定任何标头/自定义属性。
我发现了一个很棒的FOSS工具,可以发布消息并指定标头/属性:
http://sourceforge.net/projects/activemqbrowser/
希望这有所帮助。
Apache JMeter 是一款基于 Java 平台的工具,可以实现以下功能:
向队列发送消息(点对点)
发布/订阅主题
发送持久和非持久性消息
发送文本、映射和对象消息
Apache ActiveMQ 包括一个 ProducerTool 和 ConsumerTool 示例源码(Java),具有许多命令行配置选项。由于它基于 JMS API,因此使用它与其他消息代理应该很容易进行微小修改。
IBM提供了一个免费、强大的命令行工具perfharneess。
虽然它旨在对JMS提供商进行基准测试,但它非常擅长生成(和消费)测试消息。您可以使用随机生成的数据或从文件中获取数据。
其强大功能包括以固定速率发送和消费消息、使用特定数量的线程、使用JMS或本地MQ等。它会生成统计信息,告诉您队列的性能有多快(因此得名)。
唯一的缺点是,鉴于它支持的操作数量,它不是非常直观。
我经常使用另一种方法,即使用文件目录作为样本数据,并使用Camel路由将消息从目录移动到JMS队列 - 或从队列中获取它们并保存到磁盘等
例如:
from("file://someDirectory").
to("activemq:MyQueue");
如果JMS代理支持像ActiveMQ那样的JMX,则可以使用JConsole发布消息并执行更多操作。