16.3.4. 使用 live-only 配置有限的高可用性
只使用实时 HA 策略可让您在不丢失信息的情况下在集群中关闭代理。使用只读实时代理时,它会安全停止实时代理,将其消息和事务状态复制到另一个实时代理,然后关闭。然后,客户端可以重新连接到其他代理,以继续发送和接收消息。
仅限实时 HA 策略仅在代理安全停止时处理情形。它无法处理意外的代理失败。
虽然只读 HA 会阻止消息丢失,但可能无法保留消息顺序。如果配置了只读 HA 的代理已停止,其消息将附加到另一代理队列的结尾。
当代理准备缩减时,它会在其客户端断开连接前向客户端发送消息,告知它们已准备好处理其消息。但是,只有在初始代理完成缩减后,客户端才会重新连接到新的代理。这样可确保当客户端重新连接时,任何状态(如队列或事务)都可以在其他代理上可用。客户端重新连接时,常规重新连接设置应用,因此应设置足够高以应对缩减所需的时间。
这个步骤描述了如何在集群中配置每个代理来缩减。完成此步骤后,每当代理被安全停止后,它将将其消息和事务状态复制到集群中的另一个代理中。
步骤
-
打开第一个代理的
<broker-instance-dir>/etc/broker.xml
配置文件。 将代理配置为使用只读 HA 策略。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置用于缩减代理集群的方法。
指定此代理应该缩减的代理或一组代理。
Expand 将缩减为… do this… 集群中的特定代理
指定要缩减的代理连接器。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 集群中的所有代理
指定 broker 集群的发现组。
<live-only> <scale-down> <discovery-group-ref discovery-group-name="my-discovery-group"/> </scale-down> </live-only>
<live-only> <scale-down> <discovery-group-ref discovery-group-name="my-discovery-group"/> </scale-down> </live-only>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定代理组中的代理
指定代理组。
<live-only> <scale-down> <group-name>my-group-name</group-name> </scale-down> </live-only>
<live-only> <scale-down> <group-name>my-group-name</group-name> </scale-down> </live-only>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 对集群中的每个剩余的代理重复此步骤。
其他资源
- 有关使用 live-only 缩减集群的代理集群示例,请参阅 缩减示例程序。