2017-05-04 130 views
1

我有一项服务将任务发送给Docker镜像中包含的工作人员。 现在我想使用AWS FreeTier进行扩展(所以AutoScale组不是一个选项?)。 我使用这个图像测试了一个t2.micro实例的构建,一切正常。 如果我手动创建x个实例,我该如何平衡它们之间的负载? 实例是否可以设置一个标志,表示它可以接受更多请求?由于清理逻辑,内存和CPU使用率级别可能没有帮助。它可能仍然在低CPU和内存使用情况下运行。AWS如何将每个请求转发到新实例

回答

3

我会建议使用SQS。让实例“拉”工作,而不是试图将工作“推”给他们。

将每个'任务'放入SQS队列中,实例请求一个任务在准备就绪时处理。如果他们成功完成任务,则工作者/实例将其从队列中移除,并且可以要求另一个任务进行工作。

如果实例由于某种原因失败,该任务将最终自动放回到队列中,并且可以由另一个工作人员拾取。

虽然一个工人有一个任务项目可以工作,但它不会同时发给另一个工作人员(注意:除非极少数情况下,并且可能在非常高的情况下 - 我个人从来没有它发生了,但你需要考虑这种可能性)。

+0

非常感谢您对SQS的回应。我会留下评论。 – halgrim

相关问题