Amazon SQS队列:从队列获取响应

时间:2012-11-27 20:50:50

标签: amazon-s3 amazon-web-services amazon-sqs

图像处理系统。

用户将照片上传到S3。图像处理应用程序从S3获取照片并开始处理并返回输出。

过程: Web服务器将带有图像信息的SQS消息发送到队列,图像处理服务器获取SQS消息并开始处理该图像。图像处理完成后,立即将图像上传回S3并将SQS消息返回队列。图像处理引擎位于EC2服务器上。

以下是问题: Web服务器如何从图像处理服务器发送的队列中获取返回的SQS消息?

1 个答案:

答案 0 :(得分:6)

不要将图像处理视为远程过程调用,其中存在请求和响应 - 将其视为由分布式系统中的不同组件执行的一系列任务。使用两个队列解决此问题:uploaded-imagesprocessed-images

Web服务器接受图像,将其放入S3,然后将消息发布到uploaded-images队列,指示需要处理它。

您的图像处理EC2实例等待消息到达uploaded-images队列,然后从S3检索图像,进行一些处理,并将结果放入S3。然后,他们向processed-images队列发送消息,指示图像已被处理。

您的网络服务器轮询processed-images,并执行处理图像后需要执行的操作:更新数据库,在短期缓存中设置条目,指示图像已完成处理等等。

相关问题