我正在构建一个处理大量图像的应用程序,我们需要处理每个图像以应用各种转换,例如缩放/调整大小、过滤器等。我应该如何构建它以使其可以随着我们的成长而扩展我不需要像 Instagram 和其他人那样经历成长的痛苦吗?
顺便说一句,我们现在正在使用 ImageMagick 处理图像。
我正在构建一个处理大量图像的应用程序,我们需要处理每个图像以应用各种转换,例如缩放/调整大小、过滤器等。我应该如何构建它以使其可以随着我们的成长而扩展我不需要像 Instagram 和其他人那样经历成长的痛苦吗?
顺便说一句,我们现在正在使用 ImageMagick 处理图像。
我也在另一个线程中回答了这个问题,但这是一种无需担心缩放的方法:
您可以使用IronWorker 之类的服务在后台进行图像处理并减轻服务器的负载。由于它是一项服务,因此您无需管理任何内容或设置任何其他内容,它会随着您的成长而扩展,因此如果您可以使用它制作一张图像,您可以零努力地扩展到数百万张图像。
这是一篇关于如何进行一堆图像处理转换的文章:
当他们像 Instagram 一样快速增长时,每个人都难以扩展。
我的一般建议是使用工作队列系统将图像处理分配给 n 个工作人员,以便您可以轻松添加更多工作人员以更快地将工作从队列中拉出。
如果您将它与亚马逊 s3 之类的图像存储一起使用,并且可以在 ec2 上为更多工作人员添加更多服务器(例如使用 puppet、chef、scalr 等来启动更多工作人员框),您应该能够很好地扩展.