一位開發人員建置了一個微服務,該服務使用 AWS Lambda 處理來自 Amazon SQS 標準佇列的訊息。Lambda 函數透過呼叫外部 API 來豐富每個 SQS 訊息,然後將資料寫入 Amazon Redshift 資料表。該佇列必須支援每秒最多 1,000 條訊息。在測試期間,由於處理了重複的 SQS 訊息,導致重複的資料列重複插入 Redshift 資料表;所有重複的訊息都在彼此的 1 分鐘內排入佇列。開發人員應如何解決此問題?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 切換到 SQS FIFO 佇列並啟用該 FIFO 佇列上的訊息去重複功能。.
為什麼這是答案
重複的資料插入 Redshift 資料表,且所有重複訊息都在 1 分鐘內排入佇列,這強烈暗示需要訊息去重複功能。Amazon SQS FIFO (先進先出) 佇列提供嚴格的訊息排序和「一次處理」語義,其中包括訊息去重複功能。啟用 FIFO 佇列上的訊息去重複功能,可確保在去重複間隔(預設為 5 分鐘)內,具有相同去重複 ID 的訊息只會傳遞一次。 降低 Lambda 函數的最大並行數無法解決重複處理的問題,只會限制處理速度。使用 Lambda 的暫存儲存來追蹤訊息 ID 不可靠,因為 Lambda 實例是短暫的且可能重新啟動,導致狀態遺失。標準 SQS 佇列不支援訊息去重複功能,即使指派了訊息群組 ID,這僅適用於 FIFO 佇列以維護群組內的順序。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡