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

活动 MQ 消息在网络代理设置中卡住

拓拔富
2023-03-14

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

下面列出的是我为两个代理设置的网络连接器和传输连接器。我尝试过添加双工=“true”以及将网络TTL更改为1,这些似乎没有任何区别。

经纪公司a:

<networkConnectors>
    <networkConnector name="LocalBrokerToB"                    
                    networkTTL="2"
                    uri="static:(tcp://hostnameB:61617)"/>
</networkConnectors>

<transportConnectors>
    <transportConnector name="nioConnectorFront" uri="nio://hostnameA:61616?maximumConnections=1024 "/>
    <transportConnector name="nioConnectorBack" uri="tcp://hostnameA:61617?maximumConnections=1024 "/>
</transportConnectors>

经纪人B:

<networkConnectors>
    <networkConnector name="LocalBrokerToA"                    
                    networkTTL="2"
                    uri="static:(tcp://hostnameA:61617)"/>
</networkConnectors>

<transportConnectors>
    <transportConnector name="nioConnectorFront" uri="nio://hostnameB:61616?maximumConnections=1024 "/>
    <transportConnector name="nioConnectorBack" uri="tcp://hostnameB:61617?maximumConnections=1024 "/>
</transportConnectors>

你知道问题出在哪里吗?某人正在使用的配置示例将会很有帮助。

共有1个答案

袁奇逸
2023-03-14

您应该将networkConnector连接到另一个代理的传输连接器。在您的示例中,这是端口61616,而不是61617。

您应该在代理日志中或通过 Web 控制台/JMX 验证网络连接是否实际建立。

添加 duplex=“true” 让我们的一个代理启动连接,这在防火墙等情况下非常有用。就您而言,这应该无关紧要。

 类似资料:
  • 我们设置了一个中心辐射型拓扑,其中包含两个用于冗余的集线器。连接到网络的所有节点都具有到两个集线器的静态网络连接。 如果我们为另一个辐条产生的特定主题提供一个消费者,然后放弃其中一个集线器,有时消费者会停止获取数据。如果关闭hub A导致消费者停止接收数据,则进行备份将恢复消费者的订阅源。降低B对饲料没有影响。哪个枢纽可能影响消费者,这似乎是不一致的。 我们期望,对于代理网络,只要生产者在网络上并

  • 我有两个 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

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

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