Kafka 事件來源的低延遲處理 - AWS Lambda

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

Kafka 事件來源的低延遲處理

AWS Lambda 對於需要低於 100 毫秒一致end-to-end延遲的應用程式, 原生支援低延遲事件處理。此頁面提供啟用低延遲工作流程的組態詳細資訊和建議。

啟用低延遲處理

若要在 Kafka 事件來源映射上啟用低延遲處理,需要下列基本組態:

  • 啟用佈建模式。如需詳細資訊,請參閱設定佈建模式

  • 將事件來源映射的 MaximumBatchingWindowInSeconds 參數設定為 0。如需詳細資訊,請參閱批次處理行為

微調低延遲 Kafka ESM

請考慮下列建議,以針對低延遲最佳化您的 Kafka 事件來源映射:

佈建模式組態

在 Kafka 事件來源映射的佈建模式中,Lambda 可讓您透過設定稱為事件輪詢器的最小和最大資源數量,來微調事件來源映射的輸送量。事件輪詢器 (或輪詢器) 代表運算資源,可支援佈建模式中的事件來源映射,並配置高達 5 MB/s 的輸送量。每個事件輪詢器最多支援 5 個並行 Lambda 調用。

若要判斷應用程式的最佳輪詢器組態,請考慮您的尖峰擷取速率和處理需求。讓我們來看一個簡化的範例:

批次大小為 20 筆記錄,平均目標函數持續時間為 50 毫秒,每個輪詢器每秒可以處理 2,000 筆記錄,但受限於 5 MB/秒的限制。計算方式為:(20 筆記錄 × 1000 毫秒/50 毫秒) × 5 個並行 Lambda 調用。因此,如果您所需的峰值擷取速率為每秒 20,000 筆記錄,則至少需要 10 個事件輪詢器。

注意

我們建議將其他事件輪詢器佈建為緩衝區,以避免持續以最大容量運作。

佈建模式會根據設定的最小和最大事件輪詢器內的流量模式自動擴展您的事件輪詢器,這些模式可能會觸發重新平衡,因此帶來額外的延遲。您可以透過為最小和最大事件輪詢器設定相同的值來停用自動擴展。

其他考量

一些額外的考量包括:

  • 從叫用 Lambda 目標函數開始冷啟動可能會增加end-to-end延遲。若要降低此風險,請考慮在您的事件來源映射的目標函數上啟用佈建並行SnapStart。此外,最佳化函數的記憶體配置,以確保一致且最佳的執行。

  • MaximumBatchingWindowInSeconds 設為 0 時,Lambda 會立即處理任何可用的記錄,而不會等待填滿完整的批次大小。例如,如果您的批次大小設定為 1,000 筆記錄,但只有 100 筆記錄可用,Lambda 會立即處理這 100 筆記錄,而不是等待累積完整的 1,000 筆記錄。

重要

低延遲處理的最佳組態會因您的特定工作負載而有很大差異。我們強烈建議使用實際工作負載測試不同的組態,以判斷適合您使用案例的最佳設定。