我的工作是将现有的Java计算(作为WAR文件的servlet)从我们自己的服务器移至AWS。这是没有用户界面或数据库的计算。其他公司应该能够在其程序中调用该计算。 Servlet接收具有Json有效负载的发布请求,并且在执行计算后,响应会将Json有效负载发送回客户端。计算相对较重,因此非常耗时(1-2秒)。
我已经决定将AWS Elastic Beanstalk用于云计算,但是对于要使用哪种EB环境-服务器环境还是工作环境,我存在疑问。以及是否应该在EB之前使用AWS API Gateway?
希望有人可以帮我澄清一下。
Worker环境会产生一个SQS队列”,您将作业提交到其中。要启用从AWS外部对其的访问,您必须将其置于API Gateway的前面(首选方式)。
但是,工作环境以异步方式工作。它不会将作业结果返回给调用者。您需要为客户提供一些其他机制来获得结果,例如尽管使用了不同的API调用。
一种替代方法是网络环境,其中客户端直接从您的json处理应用程序获取响应。等待1-2秒不是等待HTTP请求的时间。
对于基于EB的更复杂的解决方案,可以看看Creating links between Elastic Beanstalk environments。您将为客户端提供一个与工作环境链接的前端环境,该工作环境将执行json作业处理。
另一种方式是,如果可能的话,将应用程序重写为。 Lambda似乎非常适合1-2秒的处理任务。