跨 ActiveMQ 代理网络的负载平衡客户端连接

Load balance client connections across network of ActiveMQ brokers

我在具有两个节点的 ActiveMQ 中设置了代理网络。一切正常,除了连接到一个代理的所有客户端和第二个代理没有任何连接。我启用了 updateClusterClientsrebalanceClusterClients。我认为启用这些选项将允许客户重新平衡自己。

环境细节

  1. Python 3.7
  2. Stomp 协议
  3. ActiveMQ 5.15.8
  4. 使用 stomp+ssl 传输连接器

带有故障转移传输的示例代码:

conn = stomp.Connection11([(localhost,61613),(remotehost,61613)], heartbeats= 
       (10000,20000),encoding="utf-8",heart_beat_receive_scale=2.0)
conn.start()

updateClusterClientsrebalanceClusterClients 设置仅适用于 OpenWire 客户端。 STOMP 是一个非常简单的协议(顾名思义)。代理没有标准的方式来通知 STOMP 客户端关于集群拓扑更新或告诉它连接到不同的代理。它只是不是规范的一部分。您需要手动平衡您的客户端或者使用外部负载平衡器。