2

我的工作是将我们现有的 java 计算(作为 WAR 文件的 servlet)从我们自己的服务器移动到 AWS。这是一个没有用户界面或数据库的计算。其他公司应该能够在他们的程序中调用计算。servlet 接受一个带有 Json 有效负载的 post 请求,并且在执行计算后响应将 Json 有效负载发送回客户端。计算相对繁重,因此耗时(1-2 秒)。

我已决定使用 AWS Elastic Beanstalk 进行云计算,但我不确定要使用什么 EB 环境 - 服务器或 Worker 环境?如果我应该在 EB 前使用 AWS API Gateway?

希望有人可以为我澄清这一点。

4

1 回答 1

1

Worker 环境会生成一个SQS 队列,您可以将作业提交到其中。要允许从 AWS 外部访问它,您必须使用API Gateway(首选方式)在它前面。

但是,工作环境以异步方式工作。它不会将作业结果返回给调用者。您需要为您的客户提供一些其他机制来获取结果,例如通过不同的 API 调用。

另一种方法是客户端直接从您的 json 处理应用程序获取响应的Web 环境。1-2 秒等待 HTTP 请求的时间并不长。

对于基于 EB 的更复杂的解决方案,可以查看在Elastic Beanstalk 环境之间创建链接。您将为您的客户端提供一个前端环境,该环境与执行 json 作业处理的工作环境相关联。

如果可能的话,另一种方法是将应用程序重写为lambda。Lambda 似乎非常适合 1-2 秒的处理任务。

于 2020-06-16T06:28:05.830 回答