我正在开发一个应用程序用户可以创建/删除队列的应用程序。此外,他将能够将消息从 1 个队列移动到另一个队列,删除消息,根据某些过滤器重新排列队列中的消息。
一种可能的设计是将activemq 用于队列,将apache camel 用于与Grails 集成的各种其他操作。但我不确定 ActiveMQ 是否允许在运行时创建/删除队列。
这是实施此类系统的好选择吗?
我正在开发一个应用程序用户可以创建/删除队列的应用程序。此外,他将能够将消息从 1 个队列移动到另一个队列,删除消息,根据某些过滤器重新排列队列中的消息。
一种可能的设计是将activemq 用于队列,将apache camel 用于与Grails 集成的各种其他操作。但我不确定 ActiveMQ 是否允许在运行时创建/删除队列。
这是实施此类系统的好选择吗?
是的,您可以在运行时创建/删除/管理 ActiveMQ 队列。这可以使用 ActiveMQ/Camel API 或 JMX API 来完成...
本文更详细地讨论了 ActiveMQ JMX API 方法...
http://www.consulting-notes.com/2010/08/monitoring-and-managing-activemq-with.html
您可以使用 Camel 的接收者列表动态路由到端点(可以是新的 JMS 队列等)...
还有一些关于 AMQ 和按需创建目的地的信息 http://activemq.apache.org/how-do-i-create-new-destinations.html
任何 JMS 客户端都可以使用Session.createQueue()
或Session.createTopic()
。IIRC,默认情况下这些将是临时的,这意味着一旦特定会话关闭,它们就会消失。
您还应该阅读ActiveMQConnection JavaDoc,它为您提供了许多用于创建临时或持久目标(队列和/或主题)的选项。