一家公司在 Application Load Balancer 后面的 Amazon EC2 實例上運行電子商務應用程序。這些實例在跨多個可用區的 Amazon EC2 Auto Scaling 組中運行。成功處理訂單后,應用程序立即將訂單數據發布到第三方關聯應用程序的外部跟蹤系統,該系統為訂單推薦支付銷售傭金。 在成功的營銷推廣期間,EC2 實例的數量從 2 個增加到 20 個。在此期間,應用程序繼續正常工作。但是,請求率的提高使第三方關聯應用程序不堪重負,導致請求失敗。
解決方案架構師應進行哪種架構更改組合,才能確保整個流程在負載狀態下正常運行? (請選擇兩項)
A. 將調用關聯應用程序的代碼移至新的 AWS Lambda 函數。修改應用程序以異步調用 Lambda 函數。
B. 將調用關聯應用程序的代碼移至新的 AWS Lambda 函數。修改應用程序以將訂單數據放入 Amazon Simple Queue Service (Amazon SQS) 隊列中。從隊列中調用 Lambda 函數。
C. 增加新 AWS Lambda 函數的超時時間。
D. 減少新 AWS Lambda 函數的預留并發數。
E. 增加新 AWS Lambda 函數的內存。
B、D
A. 不正確。該方案將降低 Amazon EC2 實例的負載,但此解決方案不會減少對關聯應用程序的請求數量。
B. 正確。使用 Amazon Simple Queue Service (Amazon SQS) 隊列將使主應用程序與對關聯應用程序的調用分離。此更改將保護主應用程序免受關聯應用程序容量減少的影響。此外,失敗的請求可以自動返回隊列。
C. 不正確。該方案允許 AWS Lambda 函數等待更長時間以便讓外部調用返回,但此解決方案不會減少不堪重負的關聯應用程序的負載
D. 正確。減少并發調用次數將防止關聯應用程序不堪重負。
E. 不正確。內存的增加不會影響 Lambda 函數和關聯跟蹤系統之間的交互。