使用多代理 ActiveMQ artemis 实例进行负载平衡

问题描述 投票:0回答:1

我需要您的帮助来建议我如何使用下图最好地实现负载平衡。在这里,我尝试使用 Master 创建 2 台机器,并期望消费者/发布者应用程序将使用一个通用 URL(负载平衡的 URL),其中我不应该公开单个 VM 机器信息和端口 ID。只是负载均衡器应该负责路由..

这通常是我们在 F5 负载均衡器或 HTTP 负载均衡器的帮助下所做的事情..只是想知道可以通过 ActiveMQ 及其建议来实现..?

另一方面,我也尝试在weblogic上配置这种方式来消费ActiveMQ队列中的数据 failover://(tcp://localhost:61616,tcp://localhost:61617)?randomize=true 但这没有帮助..或者 WebLogic 不理解这种格式。

load-balancing activemq-artemis
1个回答
2
投票

消息连接是有状态的。它们不像 HTTP 连接那样无状态,因此不能像 HTTP 连接那样进行负载平衡。 也许可以配置 F5 来处理有状态消息连接,但我不能肯定。我不是 F5 专家。

ActiveMQ Artemis 代理本身以及代理附带的 JMS 客户端都内置了负载平衡功能。这里要介绍的内容太多,因此我建议您查看集群文档以获取相关详细信息。

您也可以尝试使用经纪商平衡器功能。它目前处于实验阶段,但应该可以在 3 月/4 月发布的 2.21.0 版本中使用。它可以像消息连接的 F5 一样,但它可以做一些更智能的事情,例如始终将某些客户端发送到同一节点,这可以促进传统集群中不可能实现的某些用例。 (请参阅下面的更新)

您使用的 URL

failover://(tcp://localhost:61616,tcp://localhost:61617)?randomize=true
适用于 ActiveMQ 5.x 附带的 OpenWire JMS 客户端。如果您使用的是 ActiveMQ Artemis 附带的核心 JMS 客户端,那么您应该使用如下 URL:

(tcp://localhost:61616,tcp://localhost:61617)?ha=true

Broker Balancer 功能的生产准备情况更新:

自版本 2.21.0 起,此功能已完成并合并到标题为“连接路由器”的“最新文档池”中(撰写本文时为 2.30.0)。 上面的链接也已更新,以反映该功能位于标题为 Broker Balancer (2.20.0) 的文档池中的最新版本

© www.soinside.com 2019 - 2024. All rights reserved.