16.3.4. 使用 live-only 配置有限的高可用性


只使用实时 HA 策略可让您在不丢失信息的情况下在集群中关闭代理。使用只读实时代理时,它会安全停止实时代理,将其消息和事务状态复制到另一个实时代理,然后关闭。然后,客户端可以重新连接到其他代理,以继续发送和接收消息。

仅限实时 HA 策略仅在代理安全停止时处理情形。它无法处理意外的代理失败。

虽然只读 HA 会阻止消息丢失,但可能无法保留消息顺序。如果配置了只读 HA 的代理已停止,其消息将附加到另一代理队列的结尾。

注意

当代理准备缩减时,它会在其客户端断开连接前向客户端发送消息,告知它们已准备好处理其消息。但是,只有在初始代理完成缩减后,客户端才会重新连接到新的代理。这样可确保当客户端重新连接时,任何状态(如队列或事务)都可以在其他代理上可用。客户端重新连接时,常规重新连接设置应用,因此应设置足够高以应对缩减所需的时间。

这个步骤描述了如何在集群中配置每个代理来缩减。完成此步骤后,每当代理被安全停止后,它将将其消息和事务状态复制到集群中的另一个代理中。

步骤

  1. 打开第一个代理的 <broker-instance-dir>/etc/broker.xml 配置文件。
  2. 将代理配置为使用只读 HA 策略。

    <configuration>
        <core>
            ...
            <ha-policy>
                <live-only>
                </live-only>
            </ha-policy>
            ...
        </core>
    </configuration>
  3. 配置用于缩减代理集群的方法。

    指定此代理应该缩减的代理或一组代理。

    将缩减为…​do this…​

    集群中的特定代理

    指定要缩减的代理连接器。

    <live-only>
        <scale-down>
            <connectors>
                <connector-ref>broker1-connector</connector-ref>
            </connectors>
        </scale-down>
    </live-only>

    集群中的所有代理

    指定 broker 集群的发现组。

    <live-only>
        <scale-down>
            <discovery-group-ref discovery-group-name="my-discovery-group"/>
        </scale-down>
    </live-only>

    特定代理组中的代理

    指定代理组。

    <live-only>
        <scale-down>
            <group-name>my-group-name</group-name>
        </scale-down>
    </live-only>
  4. 对集群中的每个剩余的代理重复此步骤。

其他资源

  • 有关使用 live-only 缩减集群的代理集群示例,请参阅 缩减示例程序
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.