本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
COST09-BP02 實作緩衝區或限流來管理需求
緩衝和限流機制會修改工作負載的需求,以消除任何尖峰時段。在用戶端執行重試時實作限流機制。實作緩衝機制以儲存請求,並將處理的時間往後延遲。確認調節和緩衝機制經過設計,以便讓用戶端在所需時間內收到回應。
未建立此最佳實務時的曝險等級:中
實作指引
在雲端運算中實作緩衝或調節機制至關重要,如此才能管理需求並降低工作負載所需的佈建容量。為了獲得最佳效能,請務必評估總需求,包括峰值、請求變更速度以及必要的回應時間。當用戶端能夠重新發送他們的請求時,套用限流就變得很實用。相反地,對於缺少重試功能的用戶端,最理想的方法是實作緩衝解決方案。這類緩衝機制簡化了請求的湧入作業,並且會將有不同操作速度之應用程式的互動最佳化。
假設某個工作負載的需求曲線如上圖所示。此工作負載有兩個尖峰,為了處理這些尖峰,已佈建了資源容量 (以橙色線顯示)。用於此工作負載的資源和能源並非由需求曲線底下的區域表示,而是已佈建的容量底下的區域,因為這兩個尖峰必須用已佈建的容量處理。使工作負載需求曲線扁平化,有助於減少工作負載所需的已佈建容量,以及降低對環境造成的影響。若要消除尖峰時段,請考慮實作限流或緩衝解決方案。
為了深入了解,讓我們探索一下限流和緩衝機制。
限流:如果需求來源具有重試功能,則您可以實作限流。限流會告知來源,如果目前無法服務請求,則應稍後再試。來源會等待一段時間,然後重試請求。實作限流的優點是限制最大資源量和工作負載成本。在 中 AWS,您可以使用 Amazon API Gateway
基於緩衝區:基於緩衝區的方法會使用生產者 (將訊息傳送至佇列的元件)、取用者 (從佇列接收訊息的元件) 和佇列 (保留訊息) 來儲存訊息。消費者可讀取訊息並進行處理,允許以符合取用者業務要求的速度運作訊息。透過使用緩衝為主的方法,生產者的訊息會儲存在佇列或串流中,隨時可供取用者以符合其操作需求的速度來存取。
在 中 AWS,您可以選擇多個 服務來實作緩衝方法。Amazon Simple Queue Service (Amazon SQS)
緩衝和限流可透過修改工作負載的需求來消除任何尖峰時段。當用戶端會重試動作時請使用限流,並使用緩衝機制來保存請求以供稍後處理。使用緩衝為主的方法時,請將工作負載建構為可在所需的時間內為請求提供服務,並確認您能夠處理重複的工作請求。分析整體需求、變更率及所需的回應時間,以適當調整所需的調節或緩衝區大小。
實作步驟
-
分析用戶端要求:分析用戶端請求以判斷是否能夠執行重試。針對無法執行重試的用戶端,則需要實作緩衝機制。分析整體需求、變更率及所需的回應時間,以便判斷所需的調節或緩衝區大小。
-
實作緩衝區或限流:在工作負載中實作緩衝區或限流。Amazon Simple Queue Service (Amazon SQS) 等佇列可以為您的工作負載元件提供緩衝。Amazon API Gateway 可為工作負載元件提供限流功能。
資源
相關的最佳實務:
相關文件:
相關影片:
相關範例: