用于将测试消息发布到JMS队列的工具?
谁能推荐一种将测试消息快速发布到JMS队列的工具?该工具应允许用户输入一些数据(也许是XML有效负载),然后将其提交到队列中?我知道我可能可以很快地把东西撞掉,但是我想我应该先问清楚再重新发明轮子。干杯。
解决方案
回答
我不知道有一个简单的客户。我记得很久以前,当我研究不同的队列系统并尝试使用JMS时,我找不到了,现在也找不到了。虽然有很多教程可以入门,但是我们可以做一个简单的表格来实现这一目标。
抱歉,没有其他帮助。
回答
此答案并不适用于所有JMS代理,但是,如果我们碰巧正在使用Apache ActiveMQ,则基于Web的管理控制台(默认情况下位于http:// localhost:8161 / admin)使我们可以手动将文本消息发送给主题或者队列。这对于调试很方便。
回答
另外,如果JMS代理像ActiveMQ一样支持JMX,则可以使用JConsole发布消息并执行更多操作。
回答
HermesJMS似乎是与JMS提供程序进行交互的功能强大的客户端。我认为,这非常不直观,而且很难设置。 (至少我最失败了...)
其他对用户更友好的客户端通常是特定于供应商的。 Sonic Message Manager是SonicMQ的一个非常好用且易于使用的开源JMS客户端。拥有像这样的客户与不同的提供商一起工作将是很棒的。
回答
我建议使用@Will的方法,并使用ActiveMQ的Web控制台,它使我们可以发布消息并浏览队列或者轻松删除消息。
我经常使用的另一种方法是使用文件目录作为样本数据,并使用Camel路由将消息从目录移动到JMS队列,或者将消息从队列中取出并保存到磁盘等。
例如
from("file://someDirectory"). to("activemq:MyQueue");
这会将所有文件从someDirectory中移出并将它们发送到名为MyQueue的ActiveMQ队列中。如果我们希望将文件保留在原位,则可以使用URI" file:// someDirectory?noop = true"。
有关更多详细信息,请参见
- Camel中的文件终结点
- 从文件到JMS的Camel示例示例
- 骆驼支持的各种企业集成模式
回答
IBM提供了一个免费的,功能强大的命令行工具,称为perfharness。
尽管旨在对JMS提供者进行基准测试,但它确实擅长生成(和使用)测试消息。我们可以使用随机生成的数据或者从文件获取的数据。
强大的功能包括以固定的速率,使用特定数量的线程,使用JMS或者本机MQ等以固定的速率发送和使用消息。它会生成统计信息,告诉我们队列的执行速度(因此得名)。
唯一的缺点是,鉴于它支持的操作数量,它并不是超级直观。
回答
ActiveMQ有一个用于发送测试消息的Web控制台(如上所述),但是如果提供商没有此功能,则只编写一个控制台应用程序/网页来发布测试消息可能是最简单的。在JMS中发送消息并不难,仅编写自己的测试客户端可能会获得最大的好处。
如果可以在Java中使用Spring,则它具有一些功能强大的实用程序,请查看JmsTemplate。
回答
Apache JMeter是一种工具(为Java平台编写),它可以:
- 将消息发送到队列(点对点)
- 发布/订阅主题
- 发送持久性消息和非持久性消息
- 发送文本,地图和对象消息
Apache ActiveMQ包括带有许多命令行配置选项的ProducerTool和ConsumerTool示例源(Java)。由于它基于JMS API,因此只需进行少量修改即可轻松将其与其他消息代理一起使用。
回答
ActiveMQ的基于Web的管理控制台有一个很大的缺陷,那就是在发布消息时无法指定任何标题/自定义属性。
我遇到了一个简洁的FOSS工具,该工具可以发布消息并指定标头/属性:
http://sourceforge.net/projects/activemqbrowser/
高温超导