【问题标题】:Load balancing in ActiveMQ network of brokers代理的 ActiveMQ 网络中的负载平衡
【发布时间】:2017-07-19 13:56:24
【问题描述】:

我们正在使用 ActiveMQ 并定义了一个代理网络(在我们的测试设置中为 2 个)。我们已将代理配置为接受 AMQP 连接,并且我们已启用“updateClusterClients”和“rebalanceClusterClients”,如下所示:

<transportConnector name="amqp" uri="amqp+ssl://0.0.0.0:5673?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600&amp;transport.transformer=jms" updateClusterClients="true" rebalanceClusterClients="true"/>

此外,我们已经使用 Qpid JMS 构建了我们的客户端。客户端已使用故障转移 URL 进行配置。

客户端可以很好地相互通信。此外,当我停止两个代理之一时,它们会切换到剩余的代理。

但是,当我重新启动代理时,我预计会看到一些客户端转移到新代理。不幸的是,我实际看到的是他们都与同一个经纪人保持联系。

他们不重新平衡自己的原因可能是什么? 另外,我希望客户在最初连接时分散在两个经纪人身上。有没有办法实现这一点?

【问题讨论】:

    标签: jms activemq load-balancing amqp


    【解决方案1】:

    ActiveMQ 代理不会尝试重新平衡代理网络中的 AMQP 客户端。可能有一种方法可以实现它,但它对每个连接的 AMQP 客户端的性质做出了一些假设,例如它们都支持连接重定向,而并非所有客户端都支持。

    在定义更好的机制以便客户端可以连接并宣传它愿意被重定向之前,我认为您不会看到 ActiveMQ 强行丢弃 AMQP 客户端上的连接以重新平衡它们。

    代理能够重新平衡 OpenWire 客户端,因为它知道与故障转移传输连接的 OpenWire 客户端将处理请求客户端离开的连接控制命令,而未连接故障转移的客户端将忽略该命令.

    【讨论】:

    • 我担心这会是根本原因。所有示例都使用 openwire,但没有明确说明这仅适用于 openwire,所以我暗中希望我做错了什么。好吧,回到绘图框。
    • 有人在做这些事情,所以希望不会消失。
    • 我们可能会改用 openwire。
    猜你喜欢
    • 2020-02-25
    • 2013-04-09
    • 2014-02-04
    • 2014-01-03
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多