【问题标题】:ActiveMQ Artemis cluster failover questionsActiveMQ Artemis 集群故障转移问题
【发布时间】:2020-06-09 19:56:56
【问题描述】:

我有一个关于带有消息分组的 Apache Artemis 集群的问题。这也在 Kubernetes 中完成。

我目前的设置是 4 个主节点和 1 个从节点。节点 0 专门作为 LOCAL 处理消息分组,节点 1 是节点 0 的专用备份。节点 2-4 是没有备份节点的远程主节点。

我注意到,当连接的 Artemis 节点出现故障时,连接到节点 2-4 的客户端没有故障转移到其他 3 个可用的主节点,基本上没有发现其他节点。即使在原始节点恢复后,客户端仍然无法建立连接。我从另一个 Stack Overflow 帖子中看到不支持主到主故障转移。这是否意味着我需要为每个主节点创建一个从节点来处理故障转移?这会导致两个实例的故障点,而不是集群中的许多节点吗?

在使用一个主节点和一个从节点的两个节点集群的单独基本测试中,我观察到当我关闭客户端连接的主节点时,客户端不会故障转移到从节点。任何想法为什么?

【问题讨论】:

  • 您在这里有一些合理的问题,但您应该将最后一段拆分为自己的问题。

标签: activemq-artemis


【解决方案1】:

正如您在问题中指出的那样,故障转移仅在实时和备份之间受支持。因此,如果您希望对连接到节点 2-4 的客户端进行故障转移,那么这些节点将需要备份。这在ActiveMQ Artemis documentation 中有更详细的描述。

值得注意的是,集群和消息分组虽然在技术上是可行的,但却是一种有点奇怪的配对。集群是一种使用水平扩展来提高整体消息吞吐量的方法。但是,消息分组自然序列化每个组的消息消耗(以维护消息顺序),然​​后降低整体消息吞吐量(可能严重取决于用例)。单个 ActiveMQ Artemis 节点每秒可以处理数百万条消息。由于您正在对消息进行分组,因此您可能不需要增加集群的消息吞吐量。

我经常看到用户只是假设他们需要一个集群来处理他们的预期负载,而没有实际进行任何性能基准测试。这可能会导致更高的开发、测试、管理和(尤其是)硬件成本,并且在某些用例中,它实际上会产生更差的性能。请确保您已对您的应用程序和代理架构进行了彻底的基准测试,以确认提议的设计。

【讨论】:

    猜你喜欢
    • 2021-02-15
    • 2021-10-13
    • 2022-01-04
    • 2014-06-14
    • 1970-01-01
    • 2019-09-28
    • 2019-05-01
    • 1970-01-01
    相关资源
    最近更新 更多