知识卡片

降低负载丢请求限流拖时间

普通读书笔记卡 · 1453.d

内容

应对过载有两种机制:降低负载是直接拒绝超出容量的请求,让组件把资源集中服务能处理的部分,避免组件崩溃导致全部容量不可用;限流是不直接拒绝,而是延迟响应间接压低客户端后续请求频率,将节省的资源用于他处。两者的选择依据是请求的优先级和处理成本,用这两个维度决定哪些请求该被丢弃、哪些该被拖延,而不是所有超额流量一视同仁。这样系统崩溃前会先经历一段可控的、部分能力受限的状态,而不是在某个临界点突然整体失能。

参考来源

- 位置:《Google系统架构解密:构建安全可靠的系统》第8章《弹性设计》8.3.2节(源文件:`../OREILY动物书合辑 图灵新版/_epub-src/text/part0014_split_072.html`) - 结论依据:原文明确区分"降低负载是通过返回错误而不是服务请求来完成的"与"对客户端的限制是通过将响应延迟到接近截止时间来实现的"两种自动化策略,并说明两者都依赖请求优先级和请求成本来决定处理方式。 - 原始内容:降低负载是通过返回错误而不是服务请求来完成的;对客户端的限制是通过将响应延迟到接近截止时间来实现的……选择要丢弃的请求前,服务器需要了解请求的优先级和请求成本。