我是整体消息传递的新手,但已经进入了一个大量使用消息传递的支持项目
所以该项目使用了Tibco,在Tibco中 - 使用图形用户界面将主题添加到队列中非常容易。
现在我们想要转移到活动的mq - 并且刚刚开始阅读它 - 我找不到一个简单的方法来将主题桥接到队列
任何想法?
感谢
答案 0 :(得分:3)
取决于桥接的意思。 ActiveMQ有一些功能可以帮助你。
Mirrored Queues。如果启用了镜像队列,则默认情况下您可以订阅VirtualTopic.Mirror.Foo.Bar主题并接收发送到队列Foo.Bar的所有消息。由于它是一个主题,因为许多消费者可以根据需要订阅此主题。
Virtual Topics Destinations:虚拟主题背后的想法是生产者以通常的JMS方式发送主题。消费者可以继续使用JMS规范中的主题语义。但是,如果主题是虚拟的,则消费者可以从物理队列中消费逻辑主题订阅,从而允许许多消费者在许多机器上运行。线程负载平衡负载。
Broker Camel Component:在ActiveMQ代理中嵌入Apache Camel为使用Camel的集成功能扩展消息代理提供了极大的灵活性。 Apache Camel路由也有好处,因为您可以避免远程连接到ActiveMQ的序列化和网络成本 - 如果您使用activemq组件。
答案 1 :(得分:2)
除了Tim Bish的优秀答案之外,您还可以在activemq xml配置中使用复合目标来明确地将消息从主题转发到队列。但是,最简单的方法是使用虚拟主题,不使用配置 - 只需命名约定。
<destinationInterceptors>
<virtualDestinationInterceptor>
<virtualDestinations>
<compositeTopic name="THE.TOPIC">
<forwardTo>
<queue physicalName="THE.QUEUE" />
</forwardTo>
</compositeTopic>
</virtualDestinations>
</virtualDestinationInterceptor>
</destinationInterceptors>
答案 2 :(得分:0)
要启用镜像队列(请参阅http://activemq.apache.org/mirrored-queues.html),请添加以下内容 在XML配置元素中:
<destinationInterceptors>
<mirroredQueue copyMessage = "true" postfix=".rec" prefix=""/>
</destinationInterceptors>
这将为您的Broker上的每个队列创建一个名为“* .rec”的主题。
因此,每个发送到队列“Q1”的消息也会被发送到主题“Q1.rec”