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

活动 MQ 消息在代理网络中的传播

莫繁
2023-03-14

我们设置了一个中心辐射型拓扑,其中包含两个用于冗余的集线器。连接到网络的所有节点都具有到两个集线器的静态网络连接。

如果我们为另一个辐条产生的特定主题提供一个消费者,然后放弃其中一个集线器,有时消费者会停止获取数据。如果关闭hub A导致消费者停止接收数据,则进行备份将恢复消费者的订阅源。降低B对饲料没有影响。哪个枢纽可能影响消费者,这似乎是不一致的。

我们期望,对于代理网络,只要生产者在网络上并且两者都连接到一个或多个集线器,消费者就应该始终获得数据。这个期望是正确的,还是我们需要改变我们的拓扑?

每个节点都有一个如下所示的网络连接器:

static:(tcp://hub1,tcp://hub2)

共有1个答案

陆正奇
2023-03-14

事实证明,网络连接器配置上的staticallyIncludedDestinations解决了这个问题。订阅仅在连接了消费者的代理上进行管理,不受集线器故障的影响。

4/25更新:然而网络流量急剧增加。消息不断转发,直到达到其TTL。不是最好的解决方案...

 类似资料:
  • 我在网络设置中有两个ActiveMQ代理。客户端配置为randomize=true,并且能够良好连接。但是,消息不会从一个代理转发到另一个代理,而是保留在队列中。例如,我有一个特定的队列,它有多个生产者和一个消费者。如果我查看一个消费者连接到的代理上的队列,所有消息都会立即退出队列。但是,在另一个代理上,消息会排队,不会被排出。 下面列出的是我为两个代理设置的网络连接器和传输连接器。我尝试过添加双

  • 我有两个 ActiveMQ 代理(A 和 B),它们被配置为存储转发网络。当代理 B 上连接了使用者并且创建者将消息发送到 A 时,它们可以完美地将消息从 A 转发到 B。问题在于,当使用者被杀死并重新连接到 A 时,B 上排队的消息(它们是从 A 转发的)不会转发回使用者连接到的 A。即使我向 B 发送新消息,所有消息都卡在 B 上,直到我重新启动代理。我尝试在代理网络连接器上设置网络TTL=“

  • 我有两个ActiveMQ代理(A和B),它们被配置为具有静态列表的代理网络集群。 正常的消息消耗和存储转发按预期工作。也就是说:连接到代理B的消费者将拾取A上未连接消费者的消息。 我确实看到,咨询信息并非如此。在我当前的设置中,我有一个应用程序通过连接到advisory来监控DLQ:。当消息到达DLQ时,我需要它来触发某些操作。 在测试集群时,我没有看到任何针对代理A上的DLQ消息的建议消息传到我

  • 长时间侦听者,堆栈溢出:)上的首次调用者 我有一个具有生产者和消费者的ActiveMQ代理。创建器正在连接到活动 MQ 代理。有一个使用者附加到同一个代理。当我使用此设置发送消息 P - 现在我添加另一个代理来创建代理网络,并使用以下配置发送消息:P- 附加信息: P和B1在同一个数据中心,DC1。 B2 和 C 位于同一数据中心 DC2 中。 DC1和DC2是同一海岸上的两个不同数据中心,pin

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

  • 我希望我的ActiveMQ有两个活动的代理。 一个是主要和第二个,当第一个不可用时采取行动。 如何在activemq.xml文件中定义这个经纪人? 我尝试通过简单地复制和粘贴defualt代理并更改端口和名称来添加代理,但在尝试运行activemq时会引发异常。 此外,我如何知道哪个代理正在主动管理队列中的传入传出消息? 谢谢。