首页 > 解决方案 > SQS 如何确定每条消息的物理存储位置?

问题描述

这是我对 SQS 内部架构的好奇问题。我似乎没有找到对其建筑设计的深入介绍。

这个基本架构文档中,我了解到每条消息都冗余地存储在多个 SQS 服务器中。

我想知道 SQS 如何计算应该使用哪组 SQS 服务器来存储给定消息?它只是随机选择一组服务器,然后在索引服务器中维护 message_id —> server_list 映射吗?或者,也许 SQS 服务器被划分为多个冗余组,然后 SQS 计算每个消息的哈希值,然后计算每个组中的服务器“索引”?

标签: scalabilityamazon-sqs

解决方案


SQS 不提供通过 ID 访问消息的 API。因此,无需将其映射到给定 ID 的特定服务器实例,这会使您的两个猜测都不正确。


推荐阅读