【问题标题】:How to share a file to be processed between distributed resque workers如何在分布式 resque 工作人员之间共享要处理的文件
【发布时间】:2012-07-20 09:05:37
【问题描述】:

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

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

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

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

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails amazon-s3 amazon-ec2 resque amazon-sqs


    【解决方案1】:
    1. 通过使用 s3,您无需为管理自己的存储、数据传输带宽、可靠性/可用性而烦恼,总体上对您的整体设计有好处。
    2. 我认为您应该致力于设计,在最小化冗余数据流/集方面做出正确的决定,明智地定义原子任务(不要太小也不要太大)。 (例如,您能否将 PDF 文件预切成 5 块)。
    3. 另外,S3 作为文件交换目的并不昂贵,对于同一区域内的 ec2 实例,流量是免费的。请参阅 aws.amazon.com/s3/pricing/

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 2017-03-02
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 2019-07-02
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多