某公司使用的支付处理系统要求特定支付 ID 的消息必须按照发送时的顺序接收。否则,支付可能会处理不正确。解决方案架构师应采取哪些措施来满足此要求?(选择两项)
选择一个答案
点击一个选项来检查您的答案。
正确答案: 将消息写入以支付 ID 作为分区键的 Amazon Kinesis data stream。, 将消息写入 Amazon Simple Queue Service (Amazon SQS) FIFO 队列。将消息组设置为使用支付 ID。.
为什么这是答案
此场景要求消息按顺序处理。Amazon Kinesis Data Streams 通过将具有相同分区键(在此例中为支付 ID)的消息路由到同一分片来确保顺序处理。Amazon SQS FIFO 队列通过消息组 ID 保证消息的严格顺序处理。将支付 ID 用作消息组 ID 可确保与该支付 ID 相关的所有消息按发送顺序被接收和处理。
将消息写入 DynamoDB 表不保证顺序处理,因为 DynamoDB 是一个键值存储,主要用于数据持久化和检索,而非消息队列。Amazon ElastiCache for Memcached 是一个内存缓存服务,不适合作为持久性消息队列,也不提供顺序保证。标准 Amazon SQS 队列不保证消息的顺序性。