14.3.4. 使用实时配置有限的高可用性
实时 HA 策略允许您在不丢失任何信息的情况下关闭集群中的代理。使用实时代理时,当实时代理被安全停止时,它会将其消息和事务状态复制到另一个实时代理中,然后关闭。然后客户端可以重新连接到其他代理,以继续发送和接收消息。
只有在安全停止代理时,实时 HA 策略才会处理情况。它无法处理意外代理失败。
虽然仅实时 HA 可以防止消息丢失,但可能不会保留消息顺序。如果停止配置了实时 HA 的代理,其消息将附加到另一个代理队列的末尾。
当代理准备缩减时,它会在断开连接通知哪些新代理准备好处理消息前向其客户端发送消息。但是,只有在初始代理完成缩减后,客户端才会重新连接到新的代理。这样可确保当客户端重新连接时,其他代理上都可以使用队列或事务等状态。常规重新连接设置在客户端重新连接时应用,因此您应该设置这些高,以处理缩减所需的时间。
这个步骤描述了如何在集群中配置每个代理进行缩减。完成此步骤后,每当代理被安全停止时,它会将其消息和事务状态复制到集群中的其他代理中。
流程
-
打开第一个代理的
<broker_instance_dir>/etc/broker.xml
配置文件。 将代理配置为使用实时 HA 策略。
<configuration> <core> ... <ha-policy> <live-only> </live-only> </ha-policy> ... </core> </configuration>
配置缩减 broker 集群的方法。
指定此代理应缩减的代理或代理组。
缩减至… do this… 集群中的特定代理
指定您要缩减的代理的连接器。
<live-only> <scale-down> <connectors> <connector-ref>broker1-connector</connector-ref> </connectors> </scale-down> </live-only>
集群中的任何代理
指定代理集群的发现组。
<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>
- 对集群中的每个剩余的代理重复此步骤。
其它资源
- 有关使用实时扩展集群的代理集群示例,请参阅 缩减示例程序。