14.3.3.2. 配置代理集群以复制高可用性


以下流程描述了如何为 6 broker 集群配置复制高可用性(HA)。在这个拓扑中,六个代理被分成三个实时备份对:三个实时代理各自与专用备份代理配对。

复制要求至少三个实时备份对,以减少(但不消除)网络隔离的风险。

先决条件

  • 您必须有一个带有至少 6 个代理的代理集群。

    六个代理配置为三个实时备份对。有关在集群中添加代理的详情请参考 第 14 章 设置代理集群

流程

  1. 将集群中的代理分组到 live-backup 组。

    在大多数情况下,实时备份组应该由两个代理组成:实时代理和备份代理。如果您在集群中有六个代理,则需要三个 live-backup 组。

  2. 创建第一个由实时代理和一个备份代理组成的实时备份组。

    1. 打开 live 代理的 <broker_instance_dir>/etc/broker.xml 配置文件。
    2. 配置 live 代理,以将复制用于其 HA 策略。

      <configuration>
          <core>
              ...
              <ha-policy>
                  <replication>
                      <master>
                          <check-for-live-server>true</check-for-live-server>
                          <group-name>my-group-1</group-name>
                          <vote-on-replication-failure>true</vote-on-replication-failure>
                          ...
                      </master>
                  </replication>
              </ha-policy>
              ...
          </core>
      </configuration>
      check-for-live-server

      如果 live 代理失败,此属性控制客户端重启时是否应该失败。

      如果您将此属性设置为 true,当 live 代理在以前的故障切换后重启时,它会搜索集群中具有相同节点 ID 的另一个代理。如果 live 代理找到具有相同节点 ID 的另一个代理,这表示在 live 代理失败时备份代理成功启动。在这种情况下,live 代理将其数据与备份代理同步。然后,实时代理会请求备份代理关闭。如果为备份代理配置了故障恢复,如下所示,它会关闭。然后,实时代理恢复其活跃角色,客户端重新与其连接。

      警告

      如果您没有在 live 代理 上将 check-for-live-server 设置为 true,在以前的故障转移后重启 live 代理时可能会遇到重复的消息处理。特别是,如果您重启了这个属性设置为 false 的 live 代理,实时代理不会与其备份代理同步数据。在这种情况下,实时代理可能会处理备份代理已经处理的信息,从而导致重复。

      group-name
      此 live-backup 组的名称。要形成实时备份组,则必须使用相同的组名称配置 live 和 backup 代理。
      vote-on-replication-failure

      此属性控制在出现中断的复制连接时,实时代理是否启动名为实时投票 的仲裁投票。

      实时投票是实时代理确定其或其合作伙伴是否是中断复制连接的原因的一种方式。根据投票的结果,实时代理会保持运行或关闭。

      重要

      要成功仲裁票数,集群的大小必须允许实现大多数结果。因此,在使用复制 HA 策略时,您的集群 应至少具有三个 实时备份代理对。

      您在集群中配置的代理对越多,集群总体容错能力越高。例如,假设您有三个实时备份代理对。如果您丢失了与完整 live-backup 对的连接,剩余的两个实时备份对将不再达到仲裁票数。这种情形意味着,任何后续复制中断都可能导致 live 代理关闭,并阻止其备份代理启动。通过使用五个代理对配置集群,集群至少可能会出现两个故障,同时仍然确保任何仲裁投票产生大多数结果。

    3. 为 live 代理配置任何其他 HA 属性。

      这些附加 HA 属性具有适合大多数常见用例的默认值。因此,当您不想默认行为时,您只需要配置这些属性。如需更多信息,请参阅 附录 F, 复制高可用性配置元素

    4. 打开备份代理的 <broker_instance_dir>/etc/broker.xml 配置文件。
    5. 配置备份(即从)代理,以将复制用于其 HA 策略。

      <configuration>
          <core>
              ...
              <ha-policy>
                  <replication>
                      <slave>
                          <allow-failback>true</allow-failback>
                          <restart-backup>true</restart-backup>
                          <group-name>my-group-1</group-name>
                          <vote-on-replication-failure>true</vote-on-replication-failure>
                          ...
                      </slave>
                  </replication>
              </ha-policy>
              ...
          </core>
      </configuration>
      allow-failback

      如果发生故障转移,并且备份代理接管了 live 代理,则此属性会控制备份代理在重启并重新连接到集群时是否应该恢复到原始 live 代理。

      注意

      故障恢复适用于实时备份对(一个实时代理与单个备份代理对)。如果 live 代理配置了多个备份,则不会发生故障恢复。如果发生故障转移事件,备份代理将变为实时,下一次备份将变为备份。当原始 live 代理恢复在线时,它将无法启动故障恢复,因为现已在线的代理已存在备份。

      restart-backup
      此属性控制备份代理在恢复到 live 代理后是否可以自动重启。此属性的默认值为 true
      group-name
      此备份应连接到的 live 代理的组名称。备份代理仅连接到共享相同组名的实时代理。
      vote-on-replication-failure

      此属性控制在出现中断的复制连接时,实时代理是否启动名为实时投票 的仲裁投票。已激活的备份代理被视为实时代理,并可启动现场投票。

      实时投票是实时代理确定其或其合作伙伴是否是中断复制连接的原因的一种方式。根据投票的结果,实时代理会保持运行或关闭。

    6. (可选)配置备份代理启动的仲裁票数的属性。

      <configuration>
          <core>
              ...
              <ha-policy>
                  <replication>
                      <slave>
                      ...
                          <vote-retries>12</vote-retries>
                          <vote-retry-wait>5000</vote-retry-wait>
                      ...
                      </slave>
                  </replication>
              </ha-policy>
              ...
          </core>
      </configuration>
      vote-retries
      此属性控制备份代理重试仲裁投票的次数,以便获得允许备份代理启动的主要结果。
      vote-retry-wait
      此属性控制备份代理在每次重试仲裁投票之间等待的时长,以毫秒为单位。
    7. 为备份代理配置任何其他 HA 属性。

      这些附加 HA 属性具有适合大多数常见用例的默认值。因此,当您不想默认行为时,您只需要配置这些属性。如需更多信息,请参阅 附录 F, 复制高可用性配置元素

  3. 为群集中每个额外的 live-backup 组重复步骤 2。

    如果群集中有六个代理,请重复此过程两次;每个剩余的 live-backup 组一次。

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.