16.3.3. 配置复制高可用性


您可以使用复制高可用性(HA)策略在代理集群中实施 HA。使用复制时,持久数据会在实时和备份代理之间同步。如果实时代理遇到失败,则会将消息数据同步到备份代理中,并接管失败的实时代理。

如果您没有共享文件系统,应使用 replication 作为共享存储的替代选择。但是,复制可能会导致网络隔离,实时代理及其备份同时存在。

复制要求 至少三个实时备份对 减少(但不消除)网络隔离风险。至少使用三个 live-backup 代理对可让集群使用 仲裁投票 以避免有两个实时代理。

以下部分解释了仲裁如何实现工作,以及如何为至少具有三个实时备份对的代理集群配置复制 HA。

注意

由于实时和备份代理必须通过网络同步其消息传递数据,因此复制会增加性能开销。此同步过程会阻止日志操作,但不会阻止客户端。您可以配置日志操作在数据同步时可以阻止的最大时间。

16.3.3.1. 关于仲裁投票

如果实时代理及其备份遇到中断的复制连接,您可以配置名为 仲裁投票 的过程,以减少网络隔离(或"脑裂")问题。在网络隔离期间,实时代理及其备份可以同时处于活动状态。

下表描述了 AMQ Broker 使用两种仲裁投票。

vote 类型描述initiator所需的配置参与者基于投票结果的操作

备份投票

如果备份代理丢失了与 live 代理的复制连接,备份代理会根据投票的结果决定是否开始。

备份代理

无。当备份代理丢失与复制合作伙伴的连接时,会自动进行备份投票。

但是,您可以通过为这些参数指定自定义值来控制备份投票的属性:

  • quorum-vote-wait
  • vote-retries
  • vote-retry-wait

集群中的其他实时代理

当备份代理从集群中的其他实时代理接收大多数(即 仲裁)投票时启动,表示其复制合作伙伴不再可用。

实时投票

如果实时代理丢失与复制合作伙伴的连接,实时代理决定根据此投票继续运行。

实时代理

当实时代理丢失与复制合作伙伴和 vote-on-replication-replication-replication-replication-failure 设置为 true 时,进行实时投票。已激活的备份代理被视为实时代理,并可启动实时投票。

集群中的其他实时代理

如果实时代理 没有从集群中 的其他实时代理收到大部分投票,这表示其集群连接仍处于活动状态。

重要

下面列出了一些重要事项,需要记录您的代理集群的配置如何影响仲裁投票的行为。

  • 要成功进行仲裁数,集群的大小必须允许实现大多数结果。因此,在使用复制 HA 策略时,集群应该 至少有三个 live-backup 代理对。
  • 您添加到集群中的更 live-backup 代理对越多,您增加了集群的整体容错能力。例如,假设您有三个实时备份对:如果丢失了完整的 live-backup 对,剩余的两个 live-backup 对便无法达到多数结果,则后续的仲裁投票。这种情形表示,集群中的任何进一步复制中断都可能导致实时代理关闭,并防止其备份代理启动。通过使用方法配置集群,例如五个代理对,集群可能会遇到至少两个故障,同时仍可确保任何仲裁投票中的大多数结果。
  • 如果您有意 减少 集群中 live-backup 代理对的数量,则之前为多数投票建立的阈值不会自动减少。在此期间,丢失的复制连接触发的任何仲裁投票都无法成功,从而使您的集群更容易受到网络隔离的影响。要使集群重新计算仲裁投票中的大多数阈值,请先关闭您从集群中移除的 live-backup 对。然后,重启集群中的剩余的 live-backup 对。当所有剩余的代理都已重启时,集群会重新计算仲裁票数阈值。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.