COST09-BP02 實作緩衝區或限流來管理需求 - AWS 建構良好的架構

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

COST09-BP02 實作緩衝區或限流來管理需求

緩衝和限流機制會修改工作負載的需求,以消除任何尖峰時段。在用戶端執行重試時實作限流機制。實作緩衝機制以儲存請求,並將處理的時間往後延遲。確認調節和緩衝機制經過設計,以便讓用戶端在所需時間內收到回應。

未建立此最佳實務時的曝險等級:

實作指引

在雲端運算中實作緩衝或調節機制至關重要,如此才能管理需求並降低工作負載所需的佈建容量。為了獲得最佳效能,請務必評估總需求,包括峰值、請求變更速度以及必要的回應時間。當用戶端能夠重新發送他們的請求時,套用限流就變得很實用。相反地,對於缺少重試功能的用戶端,最理想的方法是實作緩衝解決方案。這類緩衝機制簡化了請求的湧入作業,並且會將有不同操作速度之應用程式的互動最佳化。

需求曲線圖,內含兩個需要大量佈建容量的相異尖峰

需求曲線圖,內含兩個需要大量佈建容量的相異尖峰

假設某個工作負載的需求曲線如上圖所示。此工作負載有兩個尖峰,為了處理這些尖峰,已佈建了資源容量 (以橙色線顯示)。用於此工作負載的資源和能源並非由需求曲線底下的區域表示,而是已佈建的容量底下的區域,因為這兩個尖峰必須用已佈建的容量處理。使工作負載需求曲線扁平化,有助於減少工作負載所需的已佈建容量,以及降低對環境造成的影響。若要消除尖峰時段,請考慮實作限流或緩衝解決方案。

為了深入了解,讓我們探索一下限流和緩衝機制。

限流:如果需求來源具有重試功能,則您可以實作限流。限流會告知來源,如果目前無法服務請求,則應稍後再試。來源會等待一段時間,然後重試請求。實作限流的優點是限制最大資源量和工作負載成本。在 中 AWS,您可以使用 Amazon API Gateway 實作限流。

基於緩衝區:基於緩衝區的方法會使用生產者 (將訊息傳送至佇列的元件)、取用者 (從佇列接收訊息的元件) 和佇列 (保留訊息) 來儲存訊息。消費者可讀取訊息並進行處理,允許以符合取用者業務要求的速度運作訊息。透過使用緩衝為主的方法,生產者的訊息會儲存在佇列或串流中,隨時可供取用者以符合其操作需求的速度來存取。

在 中 AWS,您可以選擇多個 服務來實作緩衝方法。Amazon Simple Queue Service (Amazon SQS) 是一種受管服務,提供佇列,允許單一取用者讀取個別訊息。Amazon Kinesis 可提供串流,允許許多取用者讀取相同訊息。

緩衝和限流可透過修改工作負載的需求來消除任何尖峰時段。當用戶端會重試動作時請使用限流,並使用緩衝機制來保存請求以供稍後處理。使用緩衝為主的方法時,請將工作負載建構為可在所需的時間內為請求提供服務,並確認您能夠處理重複的工作請求。分析整體需求、變更率及所需的回應時間,以適當調整所需的調節或緩衝區大小。

實作步驟

  • 分析用戶端要求:分析用戶端請求以判斷是否能夠執行重試。針對無法執行重試的用戶端,則需要實作緩衝機制。分析整體需求、變更率及所需的回應時間,以便判斷所需的調節或緩衝區大小。

  • 實作緩衝區或限流:在工作負載中實作緩衝區或限流。Amazon Simple Queue Service (Amazon SQS) 等佇列可以為您的工作負載元件提供緩衝。Amazon API Gateway 可為工作負載元件提供限流功能。

資源

相關的最佳實務:

相關文件:

相關影片:

相關範例: