要将代理配置为多站点、容错消息传递系统的一部分,您需要:
在每个数据中心中,您需要添加空闲的备份代理,这些代理可以从 live master-slave 代理组中进行,这些代理会在数据中心中断时关闭。您应该在空闲的备份代理中复制 live master 代理的配置。您还需要配置备份代理以接受与现有代理相同的客户端连接。
在后续步骤中,您了解如何配置空闲的备份代理来加入现有的 master-slave 代理组。您必须在单独的数据中心中找到空闲的备份代理,以便 live master-slave 代理组。另外,建议您仅在数据中心失败时手动启动闲置备份代理。
下图显示了示例拓扑。
Red Hat Ceph Storage 集群有效创建一个共享存储,该存储可供不同数据中心的代理使用。要确保在失败时消息仍可用于代理客户端,您可以在 live-backup 组中配置每个代理来使用:
-
共享存储高可用性(HA)策略
-
Ceph 文件系统中的相同日志、分页和大型消息目录
以下流程演示了如何在 live-backup 组的 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。因为代理是一个空闲的备份,所以您可以为活跃 master 代理指定 failover-on-shutdown
参数不会应用它。
<configuration>
<core>
...
<ha-policy>
<shared-store>
<master>
</master>
</shared-store>
</ha-policy>
...
</core>
</configuration>
其他资源
-
有关为 live-backup 代理组配置共享存储高可用性策略的更多信息,请参阅 配置共享存储高可用性。