【问题标题】:ActiveMQ Artemis cluster failover supportActiveMQ Artemis 集群故障转移支持
【发布时间】:2021-10-13 11:42:26
【问题描述】:

目前,我正在使用 ActiveMQ,并计划将系统迁移到 ActiveMQ Artemis。目前,我有 3 个生产者和 3 个消费者,只有一个 ActiveMQ 服务器/代理。

我想用 Artemis 创建集群的 3 个节点并进行负载平衡。我已阅读 this document,但找不到任何与集群中的一个节点发生故障时会发生什么相关的信息。

Artemis 集群自动启动与其他两台服务器的负载平衡?还是应该为集群中的每个节点创建一个备份服务器? (意味着总共 6 个服务器 3 个主 3 个从属)

【问题讨论】:

  • 只有3个生产者和3个消费者,为什么要创建3个节点?集群的设计目的是在处理大量客户端时通过水平扩展来增加消息吞吐量。这似乎不是您的用例。
  • 对不起@JustinBertram,是的,你是绝对正确的。由于我们的 ActiveMQ 没有性能问题,而且我们的消费者/生产者在不久的将来不会增加,所以目前最好避免集群。只是主动/被动,或主动/被动/被动对我们来说似乎就足够了。

标签: activemq-artemis


【解决方案1】:

集群和故障转移是 ActiveMQ Artemis 中相关但不同的概念。

集群消息可以跨节点进行负载平衡,但每个节点都“拥有”其上的消息。如果集群中的一个节点发生故障,那么该节点上的消息将不再可供客户端使用。集群旨在在处理大量客户端时通过水平扩展来提高消息吞吐量。

故障转移提供消息的高可用性,因此如果一个节点发生故障,那么它的备份将接管并确保来自故障节点的消息仍然可供客户端使用。在the documentation 中查看更多详细信息。

如果您认为可能会采用集群配置,我建议您使用单个代理对您的应用程序进行基准测试。 ActiveMQ Artemis 的性能相当不错。在某些用例中,它每秒可以处理数百万条消息。单个代理的性能可能足以支持您的用例。不要盲目地集群您的代理,因为您可能会不必要地使您的配置和维护复杂化并浪费资源。

【讨论】:

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