2017-05-18 43 views
5

我正面临连接ActiveMQ网络的问题。通过activeMQ网络转发邮件时出现问题

我有两个方案:

S1:我的应用程序连接到第一ActiveMQ的 “A”。这个activeMQ“A”连接到一个ActiveMQ“B” - 这是导致我一些问题的场景。 S2:我的应用程序直接连接到ActiveMQ“B”。

在这两种情况下,我们都发送数据到同一队列,当然我们发送完全相同的数据。 预期结果:当ActiveMQ“B”接收到数据时,它应该在同一队列中响应。

在场景S1中,数据由我的应用程序发送到ActiveMQ“A”,然后转发到ActiveMQ“B”,但该ActiveMQ“B”似乎没有响应,事实是ActiveMQ“A”的确没有收到来自ActiveMQ“B”的数据。 这是我的主要问题,我不明白为什么它不工作,因为如果我直接连接我的应用程序到ActiveMQ“B”我收到数据。

我试图做一个简单的架构下解释S1和S2。

有没有人已经遇到过这种问题?我应该在哪里查找问题的原因?

enter image description here

编辑:更多的细节:

在ActiveMQ中“A”我可以看到有消费者(列“消费者数”等于5)然而,在ActiveMQ的“B”有不是消费者(“消费者数量”列是0),而应该是5,如在活动MQ“A”中那样。有任何想法吗 ?

+0

您能详细说明一下您的情况S1,ActiveMQ B应该做什么?是否有另一位消费者投票B服务器并产生响应? – Adonis

+0

我亲身经历过类似的情况,但您的情况可能会有所不同。如果您为每个使用者使用单独的队列,则通信中断可能是因为阻塞队列有特定使用者的大量待处理消息。检查队列并尝试清理。 – YuVi

回答

0

ActiveMQ“A”和ActiveMQ“B”在两种方式中都使用简单的认证插件。我的问题是在回答时,ActiveMQ“B”试图连接到Active MQ“A”但未能通过验证......非常简单!事实是,我没有控制ActiveMQ“B”。 因此,解决方案是配置ActiveMQ“A”以接受来自ActiveMQ“B”的用户/密码。

1

可能与networkTTL配置有关。(http://activemq.apache.org/networks-of-brokers.html

在默认配置,消息可以去只有一个网络中的一步。如果它从A到B,则不能回到A.

+0

我向我的连接器添加了networkTTL =“3”,但问题依然存在。我想添加一些关于我的问题:在activeMQ“A”中,我可以看到有消费者(“消费者数量”列等于5),但是在activeMQ“B”中没有消费者(“消费者数量“是0),而在活动MQ”A“中应该是5。有任何想法吗 ? – Ashbay

相关问题