我有一个Java应用程序,该应用程序从SQS队列中读取并进行一些业务处理,最后将其写入数据存储区。随着SQS队列的增长,我希望能够扩展以读取和处理更多消息。每个SQS消息大约需要15到20分钟才能处理。我当时正在寻找类似AWS Fargate或AWS Beanstalk的服务来部署我的应用程序。金钱不是问题,但可用性是。最好的平台是什么?
答案 0 :(得分:0)
Fargate将是理想的解决方案,因为它比Beanstalk具有以下优点:
答案 1 :(得分:0)
我有一个非常相似的用例,并且使用了Batch。 (2014年问这个问题时不可用)
就我而言,我正在处理队列中的音频和视频文件。
您可以设置一个Lambda在SQS队列上触发,然后将作业放到批处理中。
如果将最小群集大小设置为零,那么在无工作要做时就不会有服务器在运行,但是您可以让它们自动扩展以处理作业进来时所需的工作量。 / p>
与lambda相比,优点是执行的代码可以是任何具有您想扔给它的资源的容器。
对于您的用例来说,这将是完美的,但是对于可以在几秒钟或一分钟内完成处理的任何事情,值得使每个作业处理每次执行不止一个任务,否则将花费所有时间启动和关闭倒下的容器。