COST09-BP02 实施缓冲区或节流来管理需求
缓冲和限流可修改工作负载需求,从而避免出现任何峰值情形。在客户端执行重试时实施限流。实施缓冲以存储请求并将处理任务往后推迟一段时间。确认设计节流和缓冲区时客户端能够在所需的时间内收到响应。
未建立这种最佳实践的情况下暴露的风险等级: 低
实施指导
节流: 如果需求源具有重试功能,可以实施限流。限流会告诉需求源,如果当前无法处理请求,则应稍后再试。需求源将等待一段时间,然后重新尝试请求。实施限流的优势是可限制最大资源量和工作负载成本。在 AWS 中,您可以使用
Amazon API Gateway
基于缓冲区: 与限流类似,缓冲区会延迟请求处理,从而允许以不同速率运行的应用程序有效通信。基于缓冲区的方法使用队列来接受来自产生方的消息(工作单元)。然后消息将由使用方读取并处理,这样消息就能够以满足使用方业务需求的速率运行。无需担心产生方必须处理数据持久性和反向压力等限流问题(因为使用方运行缓慢,导致产生方运行缓慢)。
在 AWS 中,您可以从多个服务中进行选择,以便实施缓冲方法。Amazon Simple Queue Service(Amazon SQS)
使用基于缓冲区的方法进行架构时,请确保架构工作负载以在所需时间内处理请求,并且您能够处理重复的工作请求。
实施步骤
-
分析客户端需求: 分析客户端请求,确定它们是否能够执行重试。对于无法执行重试的客户端,需要实施缓冲区。分析总体需求、变化率和所需的响应时间,以确定所需的限流或缓冲区大小。
-
实施缓冲区或节流: 在工作负载中实施缓冲区或限流。Amazon Simple Queue Service(Amazon SQS)之类的队列可以为工作负载组件提供缓冲区。Amazon API Gateway 可以为工作负载组件提供节流。
资源
相关文档: