16.3.5. 使用共存备份配置高可用性
您可以将备份代理与另一个实时代理位于同一个 JVM 中,而不是配置 live-backup 组。在此配置中,每个 live 代理配置为请求另一个实时代理以在 JVM 中创建并启动备份代理。
图 16.4. 共存 live 和 backup 代理
您可以将 colocation 与共享存储或复制用作高可用性(HA)策略。新的备份代理从创建它的 live 代理继承其配置。备份的名称被设置为 colocated_backup_n
,其中 n
是创建 live 代理的备份数量。
另外,备份代理会继承其连接器的配置以及来自创建它的 live 代理的接收器。默认情况下,端口偏移 100 应用于每个端口。例如,如果 live 代理具有端口 61616 的接受者,则创建的第一个备份代理将使用端口 61716,第二个备份将使用 61816,以此类推。
日志、大型消息和分页的目录会根据您选择的 HA 策略进行设置。如果您选择共享存储,请求代理会通知要使用的目标代理。如果选择复制,则目录从创建代理继承,并将新备份的名称附加到其中。
此流程将集群中的每个代理配置为使用共享存储 HA,并请求创建备份并与集群中的另一个代理在一起。
步骤
-
打开第一个代理的
<broker-instance-dir>/etc/broker.xml
配置文件。 将代理配置为使用 HA 策略和 colocation。
在本例中,代理被配置为使用共享存储 HA 和 colocation。
<configuration> <core> ... <ha-policy> <shared-store> <colocated> <request-backup>true</request-backup> <max-backups>1</max-backups> <backup-request-retries>-1</backup-request-retries> <backup-request-retry-interval>5000</backup-request-retry-interval/> <backup-port-offset>150</backup-port-offset> <excludes> <connector-ref>remote-connector</connector-ref> </excludes> <master> <failover-on-shutdown>true</failover-on-shutdown> </master> <slave> <failover-on-shutdown>true</failover-on-shutdown> <allow-failback>true</allow-failback> <restart-backup>true</restart-backup> </slave> </colocated> </shared-store> </ha-policy> ... </core> </configuration>
request-backup
-
通过将此属性设置为
true
,此代理将请求集群中另一个实时代理创建备份代理。 max-backups
-
此代理可以创建的备份代理数量。如果将此属性设置为 0,则该代理不接受来自集群中其他代理的备份请求。
backup-request-retries
-
此代理应尝试请求创建备份代理的次数。默认值为
-1
,这表示无限尝试。 backup-request-retry-interval
-
代理在重试创建备份代理请求前应等待的时间(毫秒)。默认值为
5000
,或 5 秒。 backup-port-offset
-
要用于新备份代理的端口偏移。如果此代理收到一个请求来为集群中的另一个代理创建备份,它将创建具有此数量端口偏移的备份代理。默认值为
100
。 excludes
(可选)-
从备份端口偏移中排除连接器。如果您已经为应当排除在备份端口偏移中排除的外部代理配置了任何连接器,请为每个连接器添加一个
<connector-ref>
。 master
- 此代理的共享存储或复制故障转移配置。
slave
- 此代理备份的共享存储或复制故障转移配置。
- 对集群中的每个剩余的代理重复此步骤。
其他资源
- 有关使用在一起备份的代理集群示例,请参阅 HA 示例程序。