在运行时创建 JMS 队列 [关闭]

Posted

技术标签:

【中文标题】在运行时创建 JMS 队列 [关闭]【英文标题】:Creating JMS Queues at runtime [closed] 【发布时间】:2011-02-01 12:19:32 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

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

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

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于在运行时创建 JMS 队列 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在运行时手动将消息驱动 bean 订阅到 JMS 队列/主题?

远程机器未运行时如何为远程 JMS 队列初始化 ConnectionFactory?

JMS 和 Weblogic 集群

SpringIntegration 从队列中删除消息而不进行处理

在activemq中自动创建队列[关闭]

JMS 队列的最大数量