某公司在多個 Amazon EC2 實例上執行應用程式,該應用程式會處理來自 Amazon SQS 佇列的訊息、寫入 Amazon RDS 資料表,然後從佇列中刪除訊息。即使 SQS 佇列中沒有重複訊息,RDS 資料表中仍偶爾會出現重複記錄。解決方案架構師應如何確保訊息只處理一次?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 使用 ChangeMessageVisibility API 呼叫來增加可見性逾時。.
為什麼這是答案
正確答案是使用 ChangeMessageVisibility API 呼叫來增加可見性逾時。當 EC2 實例從 SQS 佇列接收訊息時,該訊息會從佇列中隱藏一段時間(可見性逾時)。如果實例未能在此期間內處理訊息並將其刪除,訊息將重新變得可見,可能被另一個實例處理,導致重複記錄。增加可見性逾時可確保實例有足夠的時間處理訊息並將其從佇列中刪除,從而防止其他實例重複處理相同的訊息。 其他選項不正確: 使用 CreateQueue API 呼叫來建立新的佇列:這不會解決重複處理的問題,因為新佇列仍會面臨相同的可見性逾時挑戰。 使用 AddPermission API 呼叫來新增適當的權限:權限問題不會導致重複處理,而是會阻止應用程式存取佇列。 使用 ReceiveMessage API 呼叫來設定適當的等待時間:長輪詢(等待時間)有助於減少空接收次數,但不會防止在處理時間不足時的重複處理。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡