Q52 — AWS SAA-C03 第1章

第 52/65 题 | ← 返回第1章

Q52.一家公司有一个应用程序可以接收传入的消息.这些消息随后会被许多其他应用程序和微服务快速使用.消息数量变化很大,有时会达到每秒 100 000 条 该公司希望解耦该解决方案并提高可扩展性.哪个解决方案满足这些要求?

正确答案: D. 将消息发布到具有一个或多个 Amazon Simple Queue Service (Amazon SQS) 订阅的 Amazon Simple Notification Service (Amazon SNS) 主题 所有应用程序然后处理来自队列的消息.

解析

为了满足解耦解决方案和增加摄取和消费传入消息的可伸缩性的需求,最佳解决方案是选项D:使用一个或多个Amazon Simple Queue Service (Amazon SQS)订阅将消息发布到Amazon Simple Notification Service (Amazon SNS)主题。然后,所有应用程序都可以处理来自队列的消息。 以下是为什么这个解决方案是最合适的: 1. Amazon Simple Notification Service (Amazon SNS): SNS是一个完全托管的发布/订阅消息传递服务,支持消息生产者和消费者的分离。它允许应用程序在不知道订阅者的情况下向主题发布消息。 2. Amazon Simple Queue Service (Amazon SQS): SQS是一个完全托管的消息队列服务,提供可靠和可扩展的消息存储。应用程序可以订阅SNS主题并通过SQS队列接收消息,从而确保多个应用程序以可伸缩的方式处理消息。 通过实施该解决方案,公司获得以下好处: -解耦:SNS将消息生产者与消费者解耦,允许应用程序在不知道特定订阅者的情况下将消息发布到某个主题。这在摄取应用程序和消费应用程序之间提供了灵活性和松耦合。 —可扩展性:SNS和SQS可以处理高消息吞吐量,并可扩展以满足不同的消息速率。SNS可以将消息分散到多个SQS队列,允许消费应用程序并行处理。可以根据需要增加SQS队列的数量,以处理消息量的峰值。 —可靠性:SQS提供可靠和持久的消息存储,确保即使在高消息率或应用程序故障时也不会丢失消息。消息存储在队列中,直到被消费应用程序处理,从而防止消息丢失。 选项A建议将这些消息持久化到Amazon Kinesis Data Analytics。虽然Kinesis Data Analytics适用于流数据的实时分析,但它并不是为消息生产者和消费者分离而设计的。 选项B建议将应用程序部署在基于CPU指标的Auto Scaling组中的Amazon EC2实例上。虽然此解决方案可以提供可伸缩性,但它不能解决解耦需求,并且可能不如使用发布/订阅消息传递服务(如SNS和SQS)灵活。 选项C建议使用单个分片将消息写入Amazon Kinesis Data Streams。虽然Kinesis Data Streams可以处理高消息速率,但它不能提供与SNS和SQS组合相同级别的解耦和可伸缩性。