【问题标题】:Issue while forwarding message through an activeMQ network通过 activeMQ 网络转发消息时出现问题
【发布时间】:2017-10-18 17:01:26
【问题描述】:

我在连接 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。

有人遇到过这种问题吗?我应该从哪里寻找问题的原因?

编辑:更多细节:

在activeMQ“A”中我可以看到有消费者(“消费者数量”列等于5)但是在activeMQ“B”中没有消费者(“消费者数量”列是0)而它应该是 5,就像在活动 MQ “A”中一样。有什么想法吗?

【问题讨论】:

  • 您能否详细说明一下您的场景 S1,ActiveMQ B 究竟应该做什么?是否有其他消费者轮询 B 服务器并产生响应?
  • 我亲身经历过类似的情况,但您的情况可能不同。如果您为每个消费者使用单独的队列,则通信中断可能是因为阻塞队列有大量针对特定消费者的待处理消息。检查队列并尝试清理。

标签: java jms activemq broker


【解决方案1】:

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

在默认配置中,消息只能在网络中走一步。如果它从 A 到 B,它就不能回到 A。

【讨论】:

  • 我将 networkTTL="3" 添加到我的连接器,但问题仍然存在。我想补充一下我的问题:在activeMQ“A”中我可以看到有消费者(“消费者数量”列等于5)但是在activeMQ“B”中没有消费者(“消费者数量”列" 是 0),而在活动 MQ "A" 中它应该是 5。有什么想法吗?
【解决方案2】:

ActiveMQ "A" 和 ActiveMQ "B" 以两种方式使用简单的身份验证插件。我的问题是在回答时,ActiveMQ“B”试图连接到 ActiveMQ“A”,但未能通过身份验证......这太简单了!事实是我无法控制 ActiveMQ “B”。 所以解决方案是配置 ActiveMQ "A" 以便接受来自 ActiveMQ "B" 的用户/密码。

【讨论】:

    猜你喜欢
    • 2013-03-10
    • 2015-03-22
    • 2013-07-08
    • 1970-01-01
    • 2017-09-26
    • 2019-11-12
    • 1970-01-01
    • 2019-01-07
    • 2014-05-02
    相关资源
    最近更新 更多