要将代理配置为多站点容错消息传递系统的一部分,您需要:
在每个数据中心内,您需要添加可以从实时 master-slave 代理组中接管的闲置备份代理,这些代理在数据中心停机时关闭。您应该在空闲的备份代理中复制实时 master 代理配置。您还需要将备份代理配置为接受与现有代理相同的方法。
在后续步骤中,您将了解如何配置闲置备份代理以加入现有的 master-slave 代理组。您必须在单独的数据中心中找到闲置备份代理,以便该代理在 live master-slave 代理组中。另外,建议您仅在数据中心失败时手动启动闲置备份代理。
下图显示了拓扑示例。
Red Hat Ceph Storage 集群有效地创建可用于不同数据中心中代理的共享存储。要确保消息在出现故障时为代理客户端仍然可用,您可以在 live-backup 组中配置每个代理以使用:
-
共享存储高可用性(HA)策略
-
Ceph 文件系统中的相同的日志、分页和大型消息目录
以下步骤演示了如何在 master、slave 和 idle 备份代理中配置共享存储 HA 策略。
流程
编辑 live-backup 组中每个代理的 broker.xml
配置文件。配置每个代理以使用相同的分页、绑定、日志和 Ceph 文件系统中的大型消息目录。
# Master Broker - DC1
<paging-directory>mnt/cephfs/broker1/paging</paging-directory>
<bindings-directory>/mnt/cephfs/data/broker1/bindings</bindings-directory>
<journal-directory>/mnt/cephfs/data/broker1/journal</journal-directory>
<large-messages-directory>mnt/cephfs/data/broker1/large-messages</large-messages-directory>
# Slave Broker - DC1
<paging-directory>mnt/cephfs/broker1/paging</paging-directory>
<bindings-directory>/mnt/cephfs/data/broker1/bindings</bindings-directory>
<journal-directory>/mnt/cephfs/data/broker1/journal</journal-directory>
<large-messages-directory>mnt/cephfs/data/broker1/large-messages</large-messages-directory>
# Backup Broker (Idle) - DC2
<paging-directory>mnt/cephfs/broker1/paging</paging-directory>
<bindings-directory>/mnt/cephfs/data/broker1/bindings</bindings-directory>
<journal-directory>/mnt/cephfs/data/broker1/journal</journal-directory>
<large-messages-directory>mnt/cephfs/data/broker1/large-messages</large-messages-directory>
将备份代理配置为 HA 策略中的 master,如下所示。此配置设置可确保备份代理在手动启动时立即成为主代理。因为代理是一个空闲备份,所以您可以在这个示例中为活跃 master 代理指定的 failover-on-shutdown
参数。
<configuration>
<core>
...
<ha-policy>
<shared-store>
<master>
</master>
</shared-store>
</ha-policy>
...
</core>
</configuration>
其他资源
-
有关为 live-backup 代理组配置共享存储高可用性策略的更多信息,请参阅 配置共享存储高可用性。