2.4. 此设置可以存活的故障
失败 | 恢复 | RPO1 | RTO2 |
---|---|---|---|
数据库节点 | 如果写入器实例失败,数据库可以提升相同或其他站点中的读取器实例,使其成为新的写入器。 | 没有数据丢失 | 分钟的秒数(取决于数据库) |
Red Hat build of Keycloak 节点 | 多个红帽构建的 Keycloak 实例在每个站点上运行。如果一个实例失败,一些传入的请求可能会收到错误消息,或者延迟几秒钟。 | 没有数据丢失 | 少于 30 秒 |
Data Grid 节点 | 在每个站点中运行多个 Data Grid 实例。如果一个实例失败,则其他节点需要几秒钟才能注意到更改。实体至少存储在两个 Data Grid 节点上,因此单个节点故障不会造成数据丢失。 | 没有数据丢失 | 少于 30 秒 |
Data Grid 集群故障 |
如果 Data Grid 集群在其中一个站点中失败,红帽构建的 Keycloak 将无法与该站点的外部 Data Grid 通信,并且红帽构建的 Keycloak 服务将不可用。loadbalancer 将检测到情况,因为 设置会降级,直到 Data Grid 集群恢复且数据被重新同步。 | 没有数据丢失3 | 秒数(取决于负载均衡器设置) |
连接数据网格 | 如果两个站点之间的连接丢失,则无法将数据发送到其他站点。传入的请求可能会收到错误消息,或者延迟(以秒为单位)。Data Grid 将标记其他站点离线,并将停止发送数据。其中一个站点需要在负载均衡器中离线,直到恢复连接并在两个站点间重新同步数据。在蓝图中,我们展示了如何进行自动化。 | 没有数据丢失3 | 秒数(取决于负载均衡器设置) |
连接数据库 | 如果两个站点之间的连接丢失,同步复制将失败。有些请求可能会收到错误消息,或延迟几秒钟。根据数据库,可能需要手动操作。 | 没有数据丢失3 | 分钟的秒数(取决于数据库) |
站点失败 | 如果没有红帽构建的 Keycloak 节点可用,则 loadbalancer 将检测到中断,并将流量重定向到其他站点。有些请求可能会收到错误消息,直到 loadbalancer 检测到失败。 | 没有数据丢失3 | 少于两分钟 |
表注:
1 恢复点目标,假设设置的所有部分都健康。
2 Recovery time objective.
3 Manual 操作需要恢复降级设置。
语句 "No data loss" 依赖于之前失败中的设置,包括完成任何待处理的手动操作来重新同步站点之间的状态。