要将代理配置为多站点、容错消息传递系统的一部分,您需要:
在每个数据中心中,您需要添加空闲的备份代理,该代理可以从 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。因为代理是一个闲置备份,所以您可以为活跃 master 代理指定的 failover-on-shutdown
参数在这种情况下不适用。
<configuration>
<core>
...
<ha-policy>
<shared-store>
<master>
</master>
</shared-store>
</ha-policy>
...
</core>
</configuration>
其他资源
-
有关为 live-backup 代理组配置共享存储高可用性策略的更多信息,请参阅 配置共享存储高可用性。