本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SUS02-BP06 實作緩衝或調節,以扁平需求曲線
緩衝和限流可讓需求曲線趨於扁平化,並減少您的工作負載所需的已佈建容量。
常見的反模式:
-
您非必要地立即處理用戶端請求。
-
您未分析用戶端要求的需求。
建立此最佳實務的優勢:讓需求曲線趨於扁平化,可減少工作負載所需的已佈建容量。減少已佈建的容量意味著較低的能源耗用量和環境影響。
未建立此最佳實務時的曝險等級:低
實作指引
使工作負載需求曲線扁平化,有助於減少工作負載所需的已佈建容量,以及降低對環境造成的影響。假設某個工作負載的需求曲線如下圖所示。此工作負載有兩個尖峰,為了處理這些尖峰,已佈建了資源容量 (以橙色線顯示)。用於此工作負載的資源和能源並非由需求曲線底下的區域表示,而是已佈建的容量底下的區域,因為這兩個尖峰必須用已佈建的容量處理。
您可以使用緩衝或限流來修改需求曲線,並使尖峰趨緩,意即減少佈建容量和耗用的能源。在用戶端可以執行重試時實作限流。實作緩衝機制以儲存請求,並將處理的時間往後延遲。
實作步驟
-
分析用戶端請求以確定如何予以回應。要考慮的問題包括:
-
此請求是否可進行非同步處理?
-
用戶端是否有重試能力?
-
-
如果用戶端有重試功能,您可以實作限流,以告知來源若目前無法處理請求,則應稍後再試。
-
您可以使用 Amazon API Gateway
實作限流。
-
-
針對無法執行重試的用戶端,需要實作緩衝區使需求曲線扁平化。緩衝會延遲請求處理,讓以不同速率執行的應用程式能夠有效地通訊。緩衝型方法使用佇列或串流來接受生產者傳出的訊息。消費者可讀取訊息並進行處理,允許以符合取用者業務要求的速度運作訊息。
-
Amazon Simple Queue Service (Amazon SQS)
是一種受管服務,提供佇列,允許單一取用者讀取個別訊息。 -
Amazon Kinesis
可提供串流,允許許多取用者讀取相同訊息。
-
-
分析整體需求、變更率及所需的回應時間,以適當調整所需的調節或緩衝區大小。
資源
相關文件:
相關影片: