如何从服务器中删除图像处理的负载

时间:2016-10-13 13:32:06

标签: asp.net-mvc image-processing asp.net-web-api imagemagick

我们在AWS上的两台服务器上有20个不同的网站。所有网站都使用名为DesignMaker的Web应用程序(使用ImageMagick进行图像合成和更改的MVC应用程序)为用户图像执行大量图像处理。用户可以将图像上传到该应用程序,并开始使用上传的图像进行一些设计。您可以假设所有图像处理都在代码中进行了优化。

我担心的是从主服务器的Cpu中删除重图像进程的负载并将其放在另一台服务器上。因此,我想到的第一件事就是将该应用程序分离并将其转换为在其他服务器上运行的Web服务。通过这种方式,我们将图像处理的负载放在其他机器上。如果我错过了什么,请告诉我。

调用API来做一些图像处理是一个好方法吗?

还有什么其他选择?

1 个答案:

答案 0 :(得分:0)

你是正确的从网络线程移动图像处理,这只是不好的做法。

如果这是我(我在一些项目中完成了这项工作),我会将图像从MVC应用程序上传到AWS S3容器,然后使用SQS或某个排队平台发出消息。然后让一个Elastic Beanstalk实例侦听队列中的消息,当它获得消息时,它会从S3中获取图像并按照您的需要对其进行处理。

(我是Azure的人,如果我选择了错误的AWS服务,请原谅我,但模式是相同的)