第 14 章 部署 AWS Lambda 以禁用非响应站点


本章介绍了如何在多站点部署的两个站点间解决脑裂场景。它还禁用复制(如果一个站点失败),因此其他站点可以继续为请求提供服务。

此部署旨在与 多站点部署 一章中介绍的设置一起使用。将此部署与构建块中介绍的 其他构建块 一起使用。

注意

我们提供这些蓝图来显示最小功能完整示例,为常规安装提供良好的基准性能。您仍然需要根据您的环境以及您的组织的标准和安全性最佳实践进行调整。

14.1. 架构

如果多站点部署中站点之间出现网络通信失败,则这两个站点无法再继续在它们之间复制数据。Data Grid 配置有 FAIL 失败策略,该策略可确保可用性上的一致性。因此,所有用户请求都会显示错误消息,直到失败被解析(通过恢复网络连接或禁用跨站点复制)。

在这种情况下,仲裁通常用于确定哪些站点被标记为在线或离线。但是,由于多站点部署只能由两个站点组成,因此这不可能。相反,我们利用"隔离"来确保当某个站点无法连接到其他站点时,只有一个站点保留在负载均衡器配置中,因此只有此站点能够为后续用户请求提供服务。

除了负载均衡器配置外,隔离程序会禁用两个 Data Grid 集群之间的复制,以允许从负载均衡器配置中保留的站点提供用户请求。因此,在禁用复制后,站点将不同步。

要从不同步状态中恢复,需要手动重新同步,如 Synchronize Sites 所述。这就是为什么在解决网络通信失败时,不会自动重新添加通过隔离删除的站点。只有使用概述的步骤 Bring 站点在线同步后,才应重新添加删除站点

在本章中,我们介绍了如何使用 Prometheus Alerts 和 AWS Lambda 功能的组合实现隔离。当 Data Grid 服务器指标检测到脑裂时,会触发 Prometheus Alert,这会导致 Prometheus AlertManager 调用基于 AWS Lambda 的 Webhook。触发的 Lambda 功能检查当前的全局加速器配置,并删除报告离线的站点。

在真正脑裂的情况中,两个站点仍然在线,但网络通信都可能同时触发 Webhook。我们通过确保给定时间只能执行单个 Lambda 实例来保护这一点。AWS Lambda 中的逻辑可确保始终在负载均衡器配置中保留一个站点条目。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.