0

想象一下,一个亚马逊 ec2 实例监听 sqs 队列以将 pdf 转换为图像。假设我们有另外 4 个实例,每个实例有 5 个运行 resque 并共享主 redis 的工作。

Senario:我们收到一个 pdf。它有 25 页(每台服务器 5 页)。我们将文件上传到 s3。然后我们对每个页面执行perform方法来生成一张图片。

我的问题是:五个实例必须从 s3 下载文件。这是推荐的吗?还有其他解决方案吗?因为 5 个实例下载一个 10 mb 的文件来转换单独的图像似乎太慢而且太贵了……而且对于每项工作,如果文件存在,我必须检查文件系统……

在整体可扩展性设计中,这种方法是否走在正确的道路上?

感谢你的帮助!

4

1 回答 1

1
  1. 通过使用 s3,您消除了管理自己的存储、数据传输带宽、可靠性/可用性的麻烦,总体上对您的整体设计有好处。
  2. 我认为您应该进行设计,在最小化冗余数据流/集方面做出正确的决定,明智地定义原子任务(不要太小也不要太大)。(例如,您可以将 PDF 文件预切成 5 块)。
  3. 另外 S3 作为文件交换目的也不是很贵,对于同一区域内的 ec2 实例,流量是免费的。请参阅 aws.amazon.com/s3/pricing/
于 2012-09-14T19:50:27.840 回答