通过activeMQ网络转发消息时发出问题

时间:2017-05-18 18:21:10

标签: java jms activemq broker

我正面临着连接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”中。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

在默认配置中,消息只能在网络中执行一步。如果从A到B,则无法返回A.

答案 1 :(得分:0)

ActiveMQ“A”和ActiveMQ“B”在两个方面都使用简单的身份验证插件。我的问题是在回答时,ActiveMQ“B”试图连接到Active MQ“A”但未能通过验证......这很简单!事实是我对ActiveMQ“B”没有控制权。 所以解决方案是配置ActiveMQ“A”以接受来自ActiveMQ“B”的用户/密码。