第 10 章 高可用性和故障切换

创建集群配置后,您可以将代理实例链接在一起,组成高可用性(HA)对。HA 对由服务客户端请求的 master 代理和一个或多个从属代理组成,如果不再与客户端通信,则替换主代理。

在 AMQ Broker 7 中,HA 需要集群配置。代理集群可以由一组非 HA 代理或 HA 对组成。

AMQ Broker 7 提供以下 HA 策略:

复制
复制通过网络同步主代理和从属代理之间的数据。通过复制,您可以在失败事件后重新在线时启用故障恢复对 master 代理的控制,并允许客户端恢复失败。您还可以创建 HA 组,其中多个 master 代理共享一个或多个从代理,并将从属代理合并到与 master 代理相同的 JVM 中。
重要

从 7.5 开始,之前可用于复制 HA 策略的网络 ping 是一项弃用的功能。网络 ping 无法防止代理集群遭受网络隔离问题的影响,这些问题可能会导致无法恢复的信息丢失。此功能将在以后的发行版本中删除。红帽继续支持使用网络 ping 的现有 AMQ Broker 部署。但是,红帽不建议在新部署中使用网络 ping。有关配置代理集群以获取高可用性并避免网络隔离问题的指导,请参阅 实施高可用性

共享存储

共享存储为主代理和从属代理提供共享消息传递数据的位置。通常最好使用共享存储,因为与复制相比,它具有以下优势:

  • 性能(共享存储更快)
  • 无脑裂问题
  • 维护仲裁所需的代理数量(复制至少需要三个)

    与复制一样,您可以在故障事件后启用故障恢复以将控制返回到 master 代理,并允许客户端重新失败。您可以为 master 代理配置多个从代理,并联合放置从代理。

如需有关 HA 和故障转移的更多信息,请参阅配置 AMQ Broker 中的 实施高可用性

10.1. 高可用性和故障切换更改

AMQ Broker 7 中的高可用性与 AMQ 6 不同,具体取决于如何确定主控机以及代理连接何时激活。

在 AMQ Broker 7 中,master 和 slave 角色已被修复。您可以指定主代理实例,从卷仅在某些情况下处于活跃状态。在 AMQ 6 中,master 和 slave 角色没有修复。相反,HA 对中的代理会争夺锁定,获胜者将成为主服务器。

在 AMQ Broker 7 中,在一个 HA 对中,从代理的接收器处于活跃状态,即使代理不活跃。在 AMQ 6 中,从代理的传输连接器在代理激活前不会激活。