我相信亚马逊简单数据库的最大 PUT 请求是 300?
当我向它抛出 500 或 1,000 个请求时会发生什么?它是在亚马逊方面排队,我得到 504 还是应该在 EC2 上构建自己的排队服务器?
我相信亚马逊简单数据库的最大 PUT 请求是 300?
当我向它抛出 500 或 1,000 个请求时会发生什么?它是在亚马逊方面排队,我得到 504 还是应该在 EC2 上构建自己的排队服务器?
最大请求量不是一个固定的数字,而是多种因素的组合。有一个每个域的限制策略,但在限制开始之前似乎有一些突发请求的空间。此外,每个 SimpleDB 节点都处理许多域,并且每个域都由多个节点处理。处理您的请求的节点上的负载也会影响您的最大请求量。因此,您可以在非高峰时段获得更高的吞吐量(通常)。
如果您发送的请求多于 SimpleDB 愿意或能够提供的服务,您将得到一个 503 HTTP 代码。503 服务不可用响应照常进行,应重试。SimpleDB 中没有请求排队。
如果您想获得绝对最大可用吞吐量,您必须能够(或拥有一个可以)微管理您的请求传输速率的 SimpleDB 客户端。当 503 响应率达到大约 10% 时,您必须减少请求量并随后建立它。此外,将请求分散到多个域是扩展的主要手段。
我不建议在 EC2 上构建自己的队列服务器。我会尝试让 SimpleDB 直接处理请求量。一个额外的层可以使事情变得平滑,但它不会让你处理更高的负载。
我会使用在 Netflix 完成的工作作为高吞吐量写入的灵感:http: //practicalcloudcomputing.com/post/313922691/5-steps-simpledb-performance