两个独立代理上的 Artemis 客户端负载平衡

时间:2021-04-16 06:09:24

标签: apache-camel jms activemq-artemis

我有两个独立的 Artemis 2.14.0 代理实例正在运行(非集群) 假设一个实例在 host1 中运行,另一个在 host2 中运行。

我使用的是连接工厂 url 为 tcp://host1:61616?... 的骆驼 2.20,并且只能使用来自该实例的消息。

如果我想使用来自具有客户端负载平衡的独立代理实例的消息,以下连接工厂 URL 配置是否有效?

(tcp://host1:61616,tcp://host2:61616)?reconnectAttempts=5;useTopologyForLoadBalancing=false

我没有尝试过这个配置,因为从 documentation 声明似乎支持它:

  • 在 URL 中明确指定服务器。这还需要在 URL 上将 useTopologyForLoadBalancing 参数设置为 false

更新 Relevant question

1 个答案:

答案 0 :(得分:1)

客户端连接负载平衡在幕后工作,因此当从同一个 ConnectionFactory 实例创建多个连接时,它们会根据指定的负载平衡策略(默认为循环)在代理之间进行平衡)。由于您实际上并未进行聚类,因此您绝对应该设置 useTopologyForLoadBalancing=false