当前位置: 首页 > 知识库问答 >
问题:

ActiveMQ:将消息从代理复制到代理

朱渝
2023-03-14

我们需要将消息从一个ActiveMQ代理复制到另一个代理。这里消息必须只是复制,并且消息应该存在于两个代理中。

我可以想到一个自定义应用程序,它订阅某个目标并读取该消息并将消息重新发布到多个代理中的目标。

我没有权限在经纪人中进行更改,所以我想不出经纪人网络选项。

是否有任何最佳实践或工具可用于将A-MQ消息从一个代理复制到另一个代理?

共有1个答案

王扬
2023-03-14

在没有访问目标代理的情况下,据我所知和我读过的,我相信没有捷径可以避免重新发布这些消息的自定义应用程序。

但是,根据您要重新发布的消息,ActiveMQ可能会提供一些功能来促进您的实现(但就计算成本而言,它们不是免费的)。

例如,如果您想将通过该代理发送的所有消息复制到另一个代理,那么您可以考虑使用带有特定前缀(例如“复制”)的镜像队列,这将允许您只让单个消费者在该前缀之后使用通配符(例如“复制”)。

如果您只是想复制一些消息,而不是所有消息,那么我认为最优雅的处理方法是创建消费者类(或特定实现)的抽象,并为您要重新发布的队列使用该特殊实现。该类将负责将消息重新发布到另一个代理,其方式在使用时对另一个消费者类是透明的。

我在上面谈到了消费者,但是同样的概念也适用于主题和订阅者。希望这些想法有帮助:)

 类似资料:
  • 我使用网络连接器配置了两个代理 A 和 B。如果我使用独占使用者(单个使用者)或消息组(JMXgroupID),消息顺序是否保留? 在经纪人文档的网络中,我发现: 代理网络不会保留总消息排序。总排序适用于单个使用者,但网络桥引入第二个使用者。此外,网络桥接使用者通过 producer.send(..) 转发消息,因此它们从转发代理上的队列头转到目标上队列的尾部。如果单个使用者在联网代理之间移动,则

  • 我在完整图形拓扑上有一个代理网络,在不同服务器上有3个节点:A,B和C。每个代理都附加了一个生产者,并且出于测试目的,在代理 C 上只有一个非代理使用者。由于我使用的是完整图拓扑,因此每个代理还为其他每个节点都有一个代理使用者。 问题是:A收到一些消息。我希望它将这些消息转发给代理C,该代理连接了一个“真实”消费者。这不会发生,代理A存储这些消息,直到一个“真实”消费者连接到它。 我的配置(或理解

  • 我有两个具有双工网桥配置的代理。有时会出现以下情况:代理之间存在连接,从代理B到代理a的消息正常转发。但不从代理A转发到代理B。重新启动代理B时,将发送所有消息。日志中没有错误。ActiveMQ版本5.10。 代理 A 的配置: 经纪商B配置: 如何制作可靠的双工桥?

  • 我有一个特定的要求,我需要将消息发送到服务器,而服务器并不总是可用的。 为此,我使用了特定于ActiveMQ的代理网络。 目标是有一个本地应用程序A(仅限生产者),它将消息推送到另一个中央应用程序B(仅限消费者)。然而,网络并不总是可用的。因此,应用程序A的代理必须存储消息并等待连接,然后才能将消息发送到应用程序B。所以基本上,A是一个代理,需要在消息可用时将消息转发给B Broker 的 B 配

  • 每当我试图将消息从esb发布到消息代理的主题时,我都会收到此错误 我的代理代码是 我的jndi配置和axis 2配置配置正确。我的MB在端口9444上运行,Publisher_esb在端口9443上运行,subscriber esb在端口9446上运行。当我使我的订阅者保持活动状态时,如果我从我的发布者发布一条消息,该消息会反映到订阅者。 从订户获取消息的代码是 当我第一次运行订阅者时,它给了我结

  • 我想使用ActiveMQ创建一个代理来连接到另一个蚊子代理。然后,我可以使用ActiveMQ接收来自蚊子代理的消息。 我现在要做的是: 将ActiveMQ与JBoss EAP 6.3集成。 在ActiveMQ中创建MQTT代理:http://activemq.apache.org/mqtt.html 但是,在我添加代理配置中的网络连接器之后.xml: 服务器启动后显示异常: "vm://local