谁能推荐一个快速将测试消息发布到 JMS 队列的工具?
说明:
- 该工具应允许用户输入一些数据,可能是 XML 有效负载,然后将其提交到队列。
- 我应该能够在没有生产者的情况下测试消费者。
此答案不适用于所有 JMS 代理,但如果您碰巧使用的是Apache ActiveMQ,则基于 Web 的管理控制台(默认为http://localhost:8161/admin)允许您手动将文本消息发送到主题或排队。它便于调试。
HermesJMS似乎是与 JMS 提供者交互的一个相当强大的客户端。不过,在我看来,这是非常不直观且难以设置的。(至少我大部分都失败了......)
其他更用户友好的客户端通常是特定于供应商的。Sonic Message Manager是一个非常好用且易于使用的SonicMQ开源 JMS 客户端。如果有这样的客户与不同的供应商合作,那就太好了。
ActiveMQ 基于 Web 的管理控制台有一个很大的缺陷——发布消息时不能指定任何标题/自定义属性。
我遇到了一个简洁的 FOSS 工具,它可以发布消息并指定标题/属性:
http://sourceforge.net/projects/activemqbrowser/
高温高压
Apache JMeter是一个工具(为 Java 平台编写),它允许:
将消息发送到队列(点对点)
发布/订阅主题
同时发送持久和非持久消息
发送文本、地图和对象消息
Apache ActiveMQ 包括一个 ProducerTool 和一个 ConsumerTool 示例源 (Java) 以及许多命令行配置选项。由于它基于 JMS API,因此与其他消息代理一起使用应该很容易,只需稍作修改。
IBM 提供了一个免费的、强大的命令行工具,称为 perfharness。
尽管旨在对 JMS 提供程序进行基准测试,但它确实非常擅长生成(和使用)测试消息。您可以使用随机生成的数据或从文件中获取的数据。
强大的功能包括以固定速率发送和使用消息,使用特定数量的线程,使用 JMS 或本机 MQ 等。它会生成统计信息,告诉您队列执行的确切速度(因此得名)。
唯一的缺点是它不是超级直观,因为它支持的操作数量。
我推荐@Will 的方法和使用ActiveMQ 的Web 控制台,它可以让您轻松地发布消息和浏览队列或删除消息。
我经常使用的另一种方法是使用文件目录作为示例数据并使用 Camel 路由将消息从目录移动到 JMS 队列 - 或者从队列中取出它们并将它们保存到磁盘等
例如
from("file://someDirectory").
to("activemq:MyQueue");
这将从 someDirectory 中移动所有文件并将它们发送到名为 MyQueue 的 ActiveMQ 队列。如果您希望将文件保留在原处,可以使用 URI“file://someDirectory?noop=true”。
有关更多详细信息,请参阅
此外,如果 JMS 代理支持 JMX(如 ActiveMQ),您可以使用 JConsole 发布消息并执行更多操作。
ActiveMQ 有一个用于发送测试消息的 Web 控制台(如上所述),但如果您的提供商没有这个,那么编写一个控制台应用程序/网页来发布测试消息可能是最简单的。在 JMS 中发送消息并不难,编写自己的测试客户端可能会获得最大的好处。
如果您可以在 Java 中使用Spring,它有一些非常强大的实用程序,请查看JmsTemplate。
我不知道一个简单的客户。我记得很久以前我在研究不同的队列系统并尝试使用 JMS 时寻找一个,当时我找不到,现在我也找不到。不过有一件事——有大量的教程可以帮助你入门,你可以做一个简单的表格来实现这一点。
很抱歉没有提供更多帮助。
我已经构建了一个用于管理开源 JMS 服务器(目前是 Activemq 和 Hornetq)的 GUI 工具。它可以发送和接收消息和大多数常见的东西,以及将队列和主题聚合到逻辑“组”中。
它是一种商业产品,但 BETA 是免费的并且功能齐全。
对于 ActiveMQ,示例目录包含脚本。对于 Ruby 爱好者,请查看 example/ruby/stompcat.rb 和 cattomp.rb 以进行订阅和发布。
我是一名巴西开发人员,我为 Post HTTP 和 JMS 消息制作了一个 Java 程序,他可以在以下位置下载:https ://sites.google.com/site/felipeglino/softwares/posttool
在那个页面中,您可以找到英文说明。