从设计上支持优雅降级

Last reviewed 2024-12-30 UTC

Well-Architected Framework 可靠性核心中的这一原则提供了相关建议,可帮助您设计工作负载,使其能够优雅地处理故障。Google Cloud Google Cloud

此原则与可靠性的 响应 重点领域 相关。

原则概览

优雅降级是一种设计方法,即遇到高负载的系统会继续运行,但性能或准确性可能会降低。优雅降级可确保系统持续可用,并防止系统完全失败,即使系统的工作不是最佳状态也是如此。当负载恢复到可管理的水平时,系统会恢复全部功能。

例如,在高负载期间,Google 搜索会优先显示排名较高的网页的结果,这可能会牺牲一些准确性。当负载降低时,Google 搜索会重新计算搜索结果。

建议

如需设计能够优雅降级的系统,请考虑以下子部分中的建议。

实现节流

确保副本能够独立处理过载,并且能够在高流量场景中限制传入请求。这种方法有助于防止因区域之间过量流量的转移而导致的级联故障。

使用 Apigee 等工具来控制高流量期间的 API 请求速率。您可以配置政策规则,以反映您希望如何缩减请求。

尽早丢弃多余的请求

将系统配置为在前端层丢弃多余的请求,以保护后端组件。丢弃一些请求可以防止全局故障,并使系统能够更优雅地恢复。使用这种方法,一些用户可能会遇到错误。但是,与 熔断等方法相比,您可以最大限度地减少中断的影响,在熔断方法中,过载期间会丢弃所有流量。

处理部分错误和重试

构建应用,使其能够无缝处理部分错误和重试。这种设计有助于确保在高负载场景中尽可能多地处理流量。

测试过载场景

如需验证节流和请求丢弃机制是否有效,请定期在系统中模拟过载情况。测试有助于确保系统为应对实际流量激增做好准备。

监控流量激增

使用分析和监控工具来预测和应对流量激增,防止其升级为过载。尽早检测和响应有助于在高需求期间保持服务可用性。