SUS02-BP06 实施缓冲和节流以展平需求曲线
缓冲和节流可展平需求曲线,并降低工作负载所需的预置容量。
常见反模式:
-
在不需要的时候立即处理客户端请求。
-
没有分析客户端请求的要求。
建立此最佳实践的好处:展平需求曲线可降低工作负载所需的预置容量。降低预置容量即可减少能源消耗和减少对环境的影响。
在未建立这种最佳实践的情况下暴露的风险等级:低
实施指导
展平工作负载需求曲线有助于降低工作负载的预置容量和减少对环境的影响。假设工作负载的需求曲线如下图所示。此工作负载有两个峰值,为了处理这些峰值,如橙色线所示预置资源容量。因为需要预置容量来处理这两个峰值,所以此工作负载所使用的资源和能量不是由需求曲线下的区域表示,而是由预置容量线下面的区域表示。
![Provisioned capacity waveform with two distinct peaks that require high provisioned capacity.](images/provisioned-capacity-1.png)
需求曲线具有两个不同的峰值,需要高预置容量。
您可以使用缓冲和节流来修改需求曲线和弄平峰值,这意味着可以减少预置容量和消耗的能量。在客户端可以执行重试时实施节流。实施缓冲以存储请求并将处理任务往后推迟一段时间。
![Waveform diagram displaying a workload with smoothed-out peaks created using buffering or throttling.](images/provisioned-capacity-2.png)
节流对需求曲线和预置容量的影响。
实施步骤
-
分析客户端请求以确定如何对它们作出响应。要考虑的问题包括:
-
是否可以异步处理此请求?
-
客户端是否具有重试能力?
-
-
如果客户端有重试能力,则您可以实施节流,它会告诉需求源,如果当前无法处理请求,则应稍后再试。
-
您可以使用 Amazon API Gateway
来实施节流。
-
-
对于无法执行重试的客户端,则需要实施缓冲以展平需求曲线。缓冲会延迟请求处理,从而让以不同速率运行的应用程序可以有效通信。基于缓冲的方法使用队列或流来接受来自生产方的消息。然后消息将由使用方读取并处理,这样消息就能够以满足使用方业务需求的速率运行。
-
Amazon Simple Queue Service(Amazon SQS)
是一项托管服务,提供允许单个使用方读取单个消息的队列。 -
Amazon Kinesis
提供允许众多使用方读取相同消息的流。
-
-
分析总体需求、变化率和所需的响应时间,以使所需节流或缓冲的大小适宜。
资源
相关文档:
相关视频: