在运行时创建JMS队列

时间:2010-03-27 11:29:45

标签: grails queue activemq apache-camel

我正在开发一个app用户可以创建/删除队列的应用程序。此外,他可以将消息从1个队列移动到另一个队列,删除消息,根据某些过滤器重新排列队列中的消息。

一种可能的设计是将activemq用于队列和apache camel,用于与Grails集成的各种其他操作。 但我不确定ActiveMQ是否允许在运行时创建/删除队列 这是否是实施此类系统的不错选择?

3 个答案:

答案 0 :(得分:3)

还有关于AMQ和按需创建目的地的一些信息 http://activemq.apache.org/how-do-i-create-new-destinations.html

答案 1 :(得分:3)

是的,您可以在运行时创建/删除/管理ActiveMQ队列。这可以使用ActiveMQ / Camel API或JMX API来完成......

本文更详细地讨论了ActiveMQ JMX API方法......

http://www.consulting-notes.com/2010/08/monitoring-and-managing-activemq-with.html

您可以使用Camel的recipientList动态路由到端点(可以是新的JMS队列等)......

http://camel.apache.org/recipient-list.html

答案 2 :(得分:1)

任何JMS客户端都可以使用Session.createQueue()Session.createTopic()。 IIRC,默认情况下这些都是临时性的,这意味着一旦特定会话结束,它们就会消失。

您还应该阅读ActiveMQConnection JavaDoc,它为您提供了许多创建临时或持久目的地(队列和/或主题)的选项。