【问题标题】:AWS two SQS queues sending to one workerAWS 两个 SQS 队列发送到一个工作人员
【发布时间】:2014-08-23 04:30:39
【问题描述】:

我有一个应用程序可以发送电子邮件并执行文件上传(和图像大小调整)。这两种服务都不是经常使用,而且很轻。

我已经在使用 SQS 队列向运行调用 SES API 的 Sinatra 应用程序的工作人员发送消息(电子邮件至/主题/正文),这运行良好。我的问题是:是否也可以向同一个工作人员发送文件上传消息?这可能在不同的队列中。

让两个 ec2 实例坐在那里(大部分情况下)什么都不做似乎很浪费。

PS:我用的是弹性豆茎

【问题讨论】:

  • “我已经在使用 SQS 队列向运行 Sinatra 应用程序调用 SES API 的工作人员发送消息(电子邮件到/主题/正文),这运行良好” - 你愿意吗分享这个代码?我一直在为此苦苦挣扎,找不到任何例子。

标签: amazon-web-services amazon-sqs


【解决方案1】:

最好在你的消息中引入一个属性 TYPE。消息类型可以是 EMAIL/FILEUPLOAD。根据属性 TYPE,worker 可以使用消息调用相应的服务。

通过上述方法,您将能够使用一个工作人员和一个队列来处理消息。您也可以自动扩展服务器,使用多个工作人员处理消息不会有任何问题。

【讨论】:

  • 啊,是的,大约 5 分钟前我有一个类似的计划,很高兴知道其他人也这么想!谢谢
【解决方案2】:

当然,为什么不是我最初的答案。实例内部的内容完全取决于您并完全由您控制。鉴于您已经指定了应用程序/服务器的利用率非常低;您可以将您的其他应用程序放入同一个应用程序中。

当两者都在同一个实例中时,只要确保给定的实例大小是好的;应用程序域(2 个应用程序),应用程序配置不会相互混合。

PS:您将为新应用使用单独的队列;如果您需要在队列中发送图片,您可以在 S3 中上传图片并将其各自的链接放入 SQS 消息项中并进行处理。

【讨论】:

  • 谢谢,我忘了说我使用的是弹性豆茎。这个模型似乎不太愿意做这种事情。也许我应该通过创建自己的 EC2 实例来手动完成
猜你喜欢
  • 2019-04-22
  • 2013-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多