我正在构建一个处理大量图像的应用程序,我们需要处理每个图像以应用各种转换,例如缩放/调整大小,过滤器等。我应该如何构建它以便可以扩展为我们成长,我不需要经历像Instagram和其他人必须做的那些成长的痛苦?
顺便说一下,我们现在正在使用ImageMagick来处理图像。答案 0 :(得分:1)
我在另一个帖子中也回答了这个问题,但这是一种方法,而不必担心缩放:
您可以使用IronWorker之类的服务在后台进行图像处理,并减轻服务器的负担。由于它是一项服务,你不需要管理任何东西或设置其他任何东西,随着你的成长,它将与你一起扩展,所以如果你可以用它做一个图像,你可以毫不费力地扩展到数百万的图像。
这是一篇关于如何进行一系列图像处理转换的文章:
答案 1 :(得分:0)
当他们的成长速度与Instagram一样快时,每个人都难以扩展。
我的一般建议是使用工作队列系统在n个工作人员之间分配图像处理,这样您就可以轻松添加更多工作人员,从而更快地将工作从队列中拉出来。
如果您将这个用于存储像亚马逊s3这样的图像,并且可以在ec2上为更多工作人员添加更多服务器(比如使用木偶,厨师,scalr等来启动更多的工作箱),你应该能够很好地扩展。