一个组织有两个Amazon EC2实例:*第一个是运行订购应用程序和库存应用程序.*第二个运行排队系统.在一年中的某些时候,每秒下达数千个订单.排队系统关闭时,一些订单丢失了.同样,组织的库存应用程序具有不正确的产品数量,因为某些订单已被处理两次.应该采取什么措施来确保应用程序可以处理越来越多的订单()
A.将订购和库存应用程序放入其自己的AWSLambda函数中.让订购应用程序将消息写入Amazon SQS FIFO队列
B.将订购和库存应用程序放入其自己的AmazonECS容器中,并为每个应用程序创建一个AutoScaling组.然后,在多个可用区域中部署消息队列服务器
C.将订购和库存应用程序放入其自己的AmazonEC2实例中,并为每个应用程序创建一个Auto Scaling组.对接收的订单使用AmazonSQS标准队列,并在库存应用程序中实现幂等
D.将订购和库存应用程序放入其自己的Amazon EC2实例中.将传入订单写入AmazonKinesis数据流中.配置AWS Lambda以轮询流并更新清单应用程序
C、将订购和库存应用程序放入其自己的AmazonEC2实例中,并为每个应用程序创建一个Auto Scaling组.对接收的订单使用AmazonSQS标准队列,并在库存应用程序中实现幂等
解析:A这看似不错的解决方案,但实际上无法使用,因为Lambda的并发限制为1000,而我们需要每秒处理数千个订单.(尽管我们可以联系AWS来增加限额,但是对于考试而言,这并不是一个很好的答案).B.分布式排队系统在某些时候可能会有重复的消息.此外,自动伸缩组在ECS中也不是问题(尽管是为EC2提供支持的EC2)D.Kinesis流没有消息级别的确认/失败,仍将有重复项或未处理的项